<div dir="ltr">(mostly joking) any interest in seeing what it'd take to make Clang/LLVM -Wmissing-prototype clean? (which would also catch the same sort of issues, I think?)</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 1, 2019 at 4:10 PM John McCall via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: rjmccall<br>
Date: Tue Oct 1 16:12:57 2019<br>
New Revision: 373406<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=373406&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=373406&view=rev</a><br>
Log:<br>
Use scope qualifiers in Clang's tblgen backends to get useful<br>
redeclaration checking. NFC.<br>
<br>
Modified:<br>
cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp<br>
cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp<br>
cfe/trunk/utils/TableGen/NeonEmitter.cpp<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -10,6 +10,8 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
+<br>
#include "llvm/TableGen/Record.h"<br>
#include "llvm/TableGen/TableGenBackend.h"<br>
#include <cctype><br>
@@ -173,15 +175,14 @@ void ClangASTNodesEmitter::run(raw_ostre<br>
OS << "#undef ABSTRACT_" << macroName(Root.getName()) << "\n";<br>
}<br>
<br>
-namespace clang {<br>
-void EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS,<br>
- const std::string &N, const std::string &S) {<br>
+void clang::EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS,<br>
+ const std::string &N, const std::string &S) {<br>
ClangASTNodesEmitter(RK, N, S).run(OS);<br>
}<br>
<br>
// Emits and addendum to a .inc file to enumerate the clang declaration<br>
// contexts.<br>
-void EmitClangDeclContext(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangDeclContext(RecordKeeper &Records, raw_ostream &OS) {<br>
// FIXME: Find a .td file format to allow for this to be represented better.<br>
<br>
emitSourceFileHeader("List of AST Decl nodes", OS);<br>
@@ -225,4 +226,3 @@ void EmitClangDeclContext(RecordKeeper &<br>
OS << "#undef DECL_CONTEXT\n";<br>
OS << "#undef DECL_CONTEXT_BASE\n";<br>
}<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -10,6 +10,8 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
+<br>
#include "llvm/ADT/ArrayRef.h"<br>
#include "llvm/ADT/DenseMap.h"<br>
#include "llvm/ADT/DenseSet.h"<br>
@@ -2219,10 +2221,8 @@ static void emitClangAttrThisIsaIdentifi<br>
OS << "#endif // CLANG_ATTR_THIS_ISA_IDENTIFIER_ARG_LIST\n\n";<br>
}<br>
<br>
-namespace clang {<br>
-<br>
// Emits the class definitions for attributes.<br>
-void EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS) {<br>
emitSourceFileHeader("Attribute classes' definitions", OS);<br>
<br>
OS << "#ifndef LLVM_CLANG_ATTR_CLASSES_INC\n";<br>
@@ -2491,7 +2491,7 @@ void EmitClangAttrClass(RecordKeeper &Re<br>
}<br>
<br>
// Emits the class method definitions for attributes.<br>
-void EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS) {<br>
emitSourceFileHeader("Attribute classes' member function definitions", OS);<br>
<br>
std::vector<Record*> Attrs = Records.getAllDerivedDefinitions("Attr");<br>
@@ -2556,8 +2556,6 @@ void EmitClangAttrImpl(RecordKeeper &Rec<br>
EmitFunc("printPretty(OS, Policy)");<br>
}<br>
<br>
-} // end namespace clang<br>
-<br>
static void emitAttrList(raw_ostream &OS, StringRef Class,<br>
const std::vector<Record*> &AttrList) {<br>
for (auto Cur : AttrList) {<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -11,6 +11,8 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
+<br>
#include "llvm/TableGen/Record.h"<br>
#include "llvm/TableGen/StringMatcher.h"<br>
#include "llvm/TableGen/TableGenBackend.h"<br>
@@ -18,8 +20,7 @@<br>
<br>
using namespace llvm;<br>
<br>
-namespace clang {<br>
-void EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS) {<br>
emitSourceFileHeader("A list of commands useable in documentation "<br>
"comments", OS);<br>
<br>
@@ -105,7 +106,7 @@ static std::string MangleName(StringRef<br>
return Mangled;<br>
}<br>
<br>
-void EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS) {<br>
emitSourceFileHeader("A list of commands useable in documentation "<br>
"comments", OS);<br>
<br>
@@ -121,4 +122,3 @@ void EmitClangCommentCommandList(RecordK<br>
OS << "COMMENT_COMMAND(" << MangledName << ")\n";<br>
}<br>
}<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -11,6 +11,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
#include "llvm/ADT/SmallString.h"<br>
#include "llvm/Support/ConvertUTF.h"<br>
#include "llvm/TableGen/Error.h"<br>
@@ -45,9 +46,8 @@ static bool translateCodePointToUTF8(uns<br>
return true;<br>
}<br>
<br>
-namespace clang {<br>
-void EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records,<br>
- raw_ostream &OS) {<br>
+void clang::EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records,<br>
+ raw_ostream &OS) {<br>
std::vector<Record *> Tags = Records.getAllDerivedDefinitions("NCR");<br>
std::vector<StringMatcher::StringPair> NameToUTF8;<br>
SmallString<32> CLiteral;<br>
@@ -79,6 +79,3 @@ void EmitClangCommentHTMLNamedCharacterR<br>
OS << " return StringRef();\n"<br>
<< "}\n\n";<br>
}<br>
-<br>
-} // end namespace clang<br>
-<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -1,10 +1,10 @@<br>
+#include "TableGenBackends.h"<br>
#include "llvm/TableGen/Record.h"<br>
#include "llvm/TableGen/TableGenBackend.h"<br>
<br>
using namespace llvm;<br>
<br>
-namespace clang {<br>
-void EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) {<br>
+void clang::EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) {<br>
const auto &Defs = RK.getClasses();<br>
for (const auto &Entry : Defs) {<br>
Record &R = *Entry.second;<br>
@@ -15,4 +15,3 @@ void EmitClangDataCollectors(RecordKeepe<br>
}<br>
OS << "#undef DEF_ADD_DATA\n";<br>
}<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -10,6 +10,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
#include "llvm/ADT/DenseSet.h"<br>
#include "llvm/ADT/Optional.h"<br>
#include "llvm/ADT/PointerUnion.h"<br>
@@ -1187,9 +1188,8 @@ static bool isRemark(const Record &Diag)<br>
<br>
/// ClangDiagsDefsEmitter - The top-level class emits .def files containing<br>
/// declarations of Clang diagnostics.<br>
-namespace clang {<br>
-void EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS,<br>
- const std::string &Component) {<br>
+void clang::EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS,<br>
+ const std::string &Component) {<br>
// Write the #if guard<br>
if (!Component.empty()) {<br>
std::string ComponentName = StringRef(Component).upper();<br>
@@ -1288,7 +1288,6 @@ void EmitClangDiagsDefs(RecordKeeper &Re<br>
OS << ")\n";<br>
}<br>
}<br>
-} // end namespace clang<br>
<br>
//===----------------------------------------------------------------------===//<br>
// Warning Group Tables generation<br>
@@ -1528,8 +1527,7 @@ static void emitCategoryTable(RecordKeep<br>
OS << "#endif // GET_CATEGORY_TABLE\n\n";<br>
}<br>
<br>
-namespace clang {<br>
-void EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS) {<br>
// Compute a mapping from a DiagGroup to all of its parents.<br>
DiagGroupParentMap DGParentMap(Records);<br>
<br>
@@ -1565,7 +1563,6 @@ void EmitClangDiagGroups(RecordKeeper &R<br>
OS);<br>
emitCategoryTable(Records, OS);<br>
}<br>
-} // end namespace clang<br>
<br>
//===----------------------------------------------------------------------===//<br>
// Diagnostic name index generation<br>
@@ -1582,8 +1579,7 @@ struct RecordIndexElement<br>
};<br>
} // end anonymous namespace.<br>
<br>
-namespace clang {<br>
-void EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS) {<br>
const std::vector<Record*> &Diags =<br>
Records.getAllDerivedDefinitions("Diagnostic");<br>
<br>
@@ -1673,7 +1669,7 @@ void writeDiagnosticText(DiagnosticTextB<br>
} // namespace<br>
} // namespace docs<br>
<br>
-void EmitClangDiagDocs(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangDiagDocs(RecordKeeper &Records, raw_ostream &OS) {<br>
using namespace docs;<br>
<br>
// Get the documentation introduction paragraph.<br>
@@ -1792,5 +1788,3 @@ void EmitClangDiagDocs(RecordKeeper &Rec<br>
OS << "\n";<br>
}<br>
}<br>
-<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -10,6 +10,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
#include "llvm/TableGen/Error.h"<br>
#include "llvm/TableGen/Record.h"<br>
#include "llvm/TableGen/StringMatcher.h"<br>
@@ -351,10 +352,6 @@ void ClangOpcodesEmitter::PrintTypes(raw<br>
OS << ">";<br>
}<br>
<br>
-namespace clang {<br>
-<br>
-void EmitClangOpcodes(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangOpcodes(RecordKeeper &Records, raw_ostream &OS) {<br>
ClangOpcodesEmitter(Records).run(OS);<br>
}<br>
-<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -50,6 +50,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
#include "llvm/ADT/MapVector.h"<br>
#include "llvm/ADT/STLExtras.h"<br>
#include "llvm/ADT/SmallString.h"<br>
@@ -639,11 +640,7 @@ static void OCL2Qual(ASTContext &Context<br>
OS << "\n} // OCL2Qual\n";<br>
}<br>
<br>
-namespace clang {<br>
-<br>
-void EmitClangOpenCLBuiltins(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangOpenCLBuiltins(RecordKeeper &Records, raw_ostream &OS) {<br>
BuiltinNameEmitter NameChecker(Records, OS);<br>
NameChecker.Emit();<br>
}<br>
-<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -8,6 +8,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
#include "llvm/TableGen/Error.h"<br>
#include "llvm/ADT/STLExtras.h"<br>
#include "llvm/ADT/SmallString.h"<br>
@@ -21,8 +22,6 @@<br>
<br>
using namespace llvm;<br>
<br>
-namespace clang {<br>
-namespace docs {<br>
namespace {<br>
struct DocumentedOption {<br>
Record *Option;<br>
@@ -380,11 +379,8 @@ void emitDocumentation(int Depth, const<br>
}<br>
<br>
} // namespace<br>
-} // namespace docs<br>
-<br>
-void EmitClangOptDocs(RecordKeeper &Records, raw_ostream &OS) {<br>
- using namespace docs;<br>
<br>
+void clang::EmitClangOptDocs(RecordKeeper &Records, raw_ostream &OS) {<br>
const Record *DocInfo = Records.getDef("GlobalDocumentation");<br>
if (!DocInfo) {<br>
PrintFatalError("The GlobalDocumentation top-level definition is missing, "<br>
@@ -396,4 +392,3 @@ void EmitClangOptDocs(RecordKeeper &Reco<br>
<br>
emitDocumentation(0, extractDocumentation(Records), DocInfo, OS);<br>
}<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -10,6 +10,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
#include "llvm/ADT/StringMap.h"<br>
#include "llvm/TableGen/Error.h"<br>
#include "llvm/TableGen/Record.h"<br>
@@ -174,8 +175,7 @@ static void printOption(llvm::raw_ostrea<br>
OS << "true";<br>
}<br>
<br>
-namespace clang {<br>
-void EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) {<br>
std::vector<Record*> checkers = Records.getAllDerivedDefinitions("Checker");<br>
std::vector<Record*> packages = Records.getAllDerivedDefinitions("Package");<br>
<br>
@@ -315,4 +315,3 @@ void EmitClangSACheckers(RecordKeeper &R<br>
OS << "#endif // GET_CHECKER_OPTIONS\n"<br>
"\n";<br>
}<br>
-} // end namespace clang<br>
<br>
Modified: cfe/trunk/utils/TableGen/NeonEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/NeonEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/NeonEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/utils/TableGen/NeonEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/NeonEmitter.cpp Tue Oct 1 16:12:57 2019<br>
@@ -23,6 +23,7 @@<br>
//<br>
//===----------------------------------------------------------------------===//<br>
<br>
+#include "TableGenBackends.h"<br>
#include "llvm/ADT/ArrayRef.h"<br>
#include "llvm/ADT/DenseMap.h"<br>
#include "llvm/ADT/None.h"<br>
@@ -2629,22 +2630,18 @@ void NeonEmitter::runFP16(raw_ostream &O<br>
OS << "#endif /* __ARM_FP16_H */\n";<br>
}<br>
<br>
-namespace clang {<br>
-<br>
-void EmitNeon(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitNeon(RecordKeeper &Records, raw_ostream &OS) {<br>
NeonEmitter(Records).run(OS);<br>
}<br>
<br>
-void EmitFP16(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitFP16(RecordKeeper &Records, raw_ostream &OS) {<br>
NeonEmitter(Records).runFP16(OS);<br>
}<br>
<br>
-void EmitNeonSema(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitNeonSema(RecordKeeper &Records, raw_ostream &OS) {<br>
NeonEmitter(Records).runHeader(OS);<br>
}<br>
<br>
-void EmitNeonTest(RecordKeeper &Records, raw_ostream &OS) {<br>
+void clang::EmitNeonTest(RecordKeeper &Records, raw_ostream &OS) {<br>
llvm_unreachable("Neon test generation no longer implemented!");<br>
}<br>
-<br>
-} // end namespace clang<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>