From 458ec23df30bc4a66ce6794c5780d0bc7699bd27 Mon Sep 17 00:00:00 2001 From: John McCall Date: Tue, 1 Oct 2019 23:12:57 +0000 Subject: [PATCH] Use scope qualifiers in Clang's tblgen backends to get useful redeclaration checking. NFC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@373406 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/ClangASTNodesEmitter.cpp | 10 +++++----- utils/TableGen/ClangAttrEmitter.cpp | 10 ++++------ .../ClangCommentCommandInfoEmitter.cpp | 8 ++++---- ...mmentHTMLNamedCharacterReferenceEmitter.cpp | 9 +++------ utils/TableGen/ClangDataCollectorsEmitter.cpp | 5 ++--- utils/TableGen/ClangDiagnosticsEmitter.cpp | 18 ++++++------------ utils/TableGen/ClangOpcodesEmitter.cpp | 7 ++----- utils/TableGen/ClangOpenCLBuiltinEmitter.cpp | 7 ++----- utils/TableGen/ClangOptionDocEmitter.cpp | 9 ++------- utils/TableGen/ClangSACheckersEmitter.cpp | 5 ++--- utils/TableGen/NeonEmitter.cpp | 13 +++++-------- 11 files changed, 37 insertions(+), 64 deletions(-) diff --git a/utils/TableGen/ClangASTNodesEmitter.cpp b/utils/TableGen/ClangASTNodesEmitter.cpp index a0bbdbab33..3ece9be6a5 100644 --- a/utils/TableGen/ClangASTNodesEmitter.cpp +++ b/utils/TableGen/ClangASTNodesEmitter.cpp @@ -10,6 +10,8 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" + #include "llvm/TableGen/Record.h" #include "llvm/TableGen/TableGenBackend.h" #include @@ -173,15 +175,14 @@ void ClangASTNodesEmitter::run(raw_ostream &OS) { OS << "#undef ABSTRACT_" << macroName(Root.getName()) << "\n"; } -namespace clang { -void EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS, - const std::string &N, const std::string &S) { +void clang::EmitClangASTNodes(RecordKeeper &RK, raw_ostream &OS, + const std::string &N, const std::string &S) { ClangASTNodesEmitter(RK, N, S).run(OS); } // Emits and addendum to a .inc file to enumerate the clang declaration // contexts. -void EmitClangDeclContext(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangDeclContext(RecordKeeper &Records, raw_ostream &OS) { // FIXME: Find a .td file format to allow for this to be represented better. emitSourceFileHeader("List of AST Decl nodes", OS); @@ -225,4 +226,3 @@ void EmitClangDeclContext(RecordKeeper &Records, raw_ostream &OS) { OS << "#undef DECL_CONTEXT\n"; OS << "#undef DECL_CONTEXT_BASE\n"; } -} // end namespace clang diff --git a/utils/TableGen/ClangAttrEmitter.cpp b/utils/TableGen/ClangAttrEmitter.cpp index 55c290135d..0d92a321c7 100644 --- a/utils/TableGen/ClangAttrEmitter.cpp +++ b/utils/TableGen/ClangAttrEmitter.cpp @@ -10,6 +10,8 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" + #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseSet.h" @@ -2219,10 +2221,8 @@ static void emitClangAttrThisIsaIdentifierArgList(RecordKeeper &Records, OS << "#endif // CLANG_ATTR_THIS_ISA_IDENTIFIER_ARG_LIST\n\n"; } -namespace clang { - // Emits the class definitions for attributes. -void EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS) { emitSourceFileHeader("Attribute classes' definitions", OS); OS << "#ifndef LLVM_CLANG_ATTR_CLASSES_INC\n"; @@ -2491,7 +2491,7 @@ void EmitClangAttrClass(RecordKeeper &Records, raw_ostream &OS) { } // Emits the class method definitions for attributes. -void EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS) { emitSourceFileHeader("Attribute classes' member function definitions", OS); std::vector Attrs = Records.getAllDerivedDefinitions("Attr"); @@ -2556,8 +2556,6 @@ void EmitClangAttrImpl(RecordKeeper &Records, raw_ostream &OS) { EmitFunc("printPretty(OS, Policy)"); } -} // end namespace clang - static void emitAttrList(raw_ostream &OS, StringRef Class, const std::vector &AttrList) { for (auto Cur : AttrList) { diff --git a/utils/TableGen/ClangCommentCommandInfoEmitter.cpp b/utils/TableGen/ClangCommentCommandInfoEmitter.cpp index c0dd70281a..fc79d59713 100644 --- a/utils/TableGen/ClangCommentCommandInfoEmitter.cpp +++ b/utils/TableGen/ClangCommentCommandInfoEmitter.cpp @@ -11,6 +11,8 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" + #include "llvm/TableGen/Record.h" #include "llvm/TableGen/StringMatcher.h" #include "llvm/TableGen/TableGenBackend.h" @@ -18,8 +20,7 @@ using namespace llvm; -namespace clang { -void EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangCommentCommandInfo(RecordKeeper &Records, raw_ostream &OS) { emitSourceFileHeader("A list of commands useable in documentation " "comments", OS); @@ -105,7 +106,7 @@ static std::string MangleName(StringRef Str) { return Mangled; } -void EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS) { emitSourceFileHeader("A list of commands useable in documentation " "comments", OS); @@ -121,4 +122,3 @@ void EmitClangCommentCommandList(RecordKeeper &Records, raw_ostream &OS) { OS << "COMMENT_COMMAND(" << MangledName << ")\n"; } } -} // end namespace clang diff --git a/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp b/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp index 81af5b4b95..ed3f4bd6ef 100644 --- a/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp +++ b/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp @@ -11,6 +11,7 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" #include "llvm/ADT/SmallString.h" #include "llvm/Support/ConvertUTF.h" #include "llvm/TableGen/Error.h" @@ -45,9 +46,8 @@ static bool translateCodePointToUTF8(unsigned CodePoint, return true; } -namespace clang { -void EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, - raw_ostream &OS) { +void clang::EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, + raw_ostream &OS) { std::vector Tags = Records.getAllDerivedDefinitions("NCR"); std::vector NameToUTF8; SmallString<32> CLiteral; @@ -79,6 +79,3 @@ void EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, OS << " return StringRef();\n" << "}\n\n"; } - -} // end namespace clang - diff --git a/utils/TableGen/ClangDataCollectorsEmitter.cpp b/utils/TableGen/ClangDataCollectorsEmitter.cpp index 4079efc808..45082935c1 100644 --- a/utils/TableGen/ClangDataCollectorsEmitter.cpp +++ b/utils/TableGen/ClangDataCollectorsEmitter.cpp @@ -1,10 +1,10 @@ +#include "TableGenBackends.h" #include "llvm/TableGen/Record.h" #include "llvm/TableGen/TableGenBackend.h" using namespace llvm; -namespace clang { -void EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) { +void clang::EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) { const auto &Defs = RK.getClasses(); for (const auto &Entry : Defs) { Record &R = *Entry.second; @@ -15,4 +15,3 @@ void EmitClangDataCollectors(RecordKeeper &RK, raw_ostream &OS) { } OS << "#undef DEF_ADD_DATA\n"; } -} // end namespace clang diff --git a/utils/TableGen/ClangDiagnosticsEmitter.cpp b/utils/TableGen/ClangDiagnosticsEmitter.cpp index 13e564e130..7783750100 100644 --- a/utils/TableGen/ClangDiagnosticsEmitter.cpp +++ b/utils/TableGen/ClangDiagnosticsEmitter.cpp @@ -10,6 +10,7 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/Optional.h" #include "llvm/ADT/PointerUnion.h" @@ -1187,9 +1188,8 @@ static bool isRemark(const Record &Diag) { /// ClangDiagsDefsEmitter - The top-level class emits .def files containing /// declarations of Clang diagnostics. -namespace clang { -void EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS, - const std::string &Component) { +void clang::EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS, + const std::string &Component) { // Write the #if guard if (!Component.empty()) { std::string ComponentName = StringRef(Component).upper(); @@ -1288,7 +1288,6 @@ void EmitClangDiagsDefs(RecordKeeper &Records, raw_ostream &OS, OS << ")\n"; } } -} // end namespace clang //===----------------------------------------------------------------------===// // Warning Group Tables generation @@ -1528,8 +1527,7 @@ static void emitCategoryTable(RecordKeeper &Records, raw_ostream &OS) { OS << "#endif // GET_CATEGORY_TABLE\n\n"; } -namespace clang { -void EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS) { // Compute a mapping from a DiagGroup to all of its parents. DiagGroupParentMap DGParentMap(Records); @@ -1565,7 +1563,6 @@ void EmitClangDiagGroups(RecordKeeper &Records, raw_ostream &OS) { OS); emitCategoryTable(Records, OS); } -} // end namespace clang //===----------------------------------------------------------------------===// // Diagnostic name index generation @@ -1582,8 +1579,7 @@ struct RecordIndexElement }; } // end anonymous namespace. -namespace clang { -void EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangDiagsIndexName(RecordKeeper &Records, raw_ostream &OS) { const std::vector &Diags = Records.getAllDerivedDefinitions("Diagnostic"); @@ -1673,7 +1669,7 @@ void writeDiagnosticText(DiagnosticTextBuilder &Builder, const Record *R, } // namespace } // namespace docs -void EmitClangDiagDocs(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangDiagDocs(RecordKeeper &Records, raw_ostream &OS) { using namespace docs; // Get the documentation introduction paragraph. @@ -1792,5 +1788,3 @@ void EmitClangDiagDocs(RecordKeeper &Records, raw_ostream &OS) { OS << "\n"; } } - -} // end namespace clang diff --git a/utils/TableGen/ClangOpcodesEmitter.cpp b/utils/TableGen/ClangOpcodesEmitter.cpp index 1ff20f0f44..e5bfac5ba1 100644 --- a/utils/TableGen/ClangOpcodesEmitter.cpp +++ b/utils/TableGen/ClangOpcodesEmitter.cpp @@ -10,6 +10,7 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Record.h" #include "llvm/TableGen/StringMatcher.h" @@ -351,10 +352,6 @@ void ClangOpcodesEmitter::PrintTypes(raw_ostream &OS, ArrayRef Types) OS << ">"; } -namespace clang { - -void EmitClangOpcodes(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangOpcodes(RecordKeeper &Records, raw_ostream &OS) { ClangOpcodesEmitter(Records).run(OS); } - -} // end namespace clang diff --git a/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp b/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp index 7ae1a0672f..c8975d7bf6 100644 --- a/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp +++ b/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp @@ -50,6 +50,7 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallString.h" @@ -639,11 +640,7 @@ static void OCL2Qual(ASTContext &Context, const OpenCLTypeStruct &Ty, OS << "\n} // OCL2Qual\n"; } -namespace clang { - -void EmitClangOpenCLBuiltins(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangOpenCLBuiltins(RecordKeeper &Records, raw_ostream &OS) { BuiltinNameEmitter NameChecker(Records, OS); NameChecker.Emit(); } - -} // end namespace clang diff --git a/utils/TableGen/ClangOptionDocEmitter.cpp b/utils/TableGen/ClangOptionDocEmitter.cpp index 7027113c4f..b944ad9608 100644 --- a/utils/TableGen/ClangOptionDocEmitter.cpp +++ b/utils/TableGen/ClangOptionDocEmitter.cpp @@ -8,6 +8,7 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" #include "llvm/TableGen/Error.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallString.h" @@ -21,8 +22,6 @@ using namespace llvm; -namespace clang { -namespace docs { namespace { struct DocumentedOption { Record *Option; @@ -380,11 +379,8 @@ void emitDocumentation(int Depth, const Documentation &Doc, } } // namespace -} // namespace docs - -void EmitClangOptDocs(RecordKeeper &Records, raw_ostream &OS) { - using namespace docs; +void clang::EmitClangOptDocs(RecordKeeper &Records, raw_ostream &OS) { const Record *DocInfo = Records.getDef("GlobalDocumentation"); if (!DocInfo) { PrintFatalError("The GlobalDocumentation top-level definition is missing, " @@ -396,4 +392,3 @@ void EmitClangOptDocs(RecordKeeper &Records, raw_ostream &OS) { emitDocumentation(0, extractDocumentation(Records), DocInfo, OS); } -} // end namespace clang diff --git a/utils/TableGen/ClangSACheckersEmitter.cpp b/utils/TableGen/ClangSACheckersEmitter.cpp index 7dd0895b76..feefbeb411 100644 --- a/utils/TableGen/ClangSACheckersEmitter.cpp +++ b/utils/TableGen/ClangSACheckersEmitter.cpp @@ -10,6 +10,7 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" #include "llvm/ADT/StringMap.h" #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Record.h" @@ -174,8 +175,7 @@ static void printOption(llvm::raw_ostream &OS, StringRef FullName, OS << "true"; } -namespace clang { -void EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { std::vector checkers = Records.getAllDerivedDefinitions("Checker"); std::vector packages = Records.getAllDerivedDefinitions("Package"); @@ -315,4 +315,3 @@ void EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { OS << "#endif // GET_CHECKER_OPTIONS\n" "\n"; } -} // end namespace clang diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp index d5a9744b7d..f420fa6a8c 100644 --- a/utils/TableGen/NeonEmitter.cpp +++ b/utils/TableGen/NeonEmitter.cpp @@ -23,6 +23,7 @@ // //===----------------------------------------------------------------------===// +#include "TableGenBackends.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/None.h" @@ -2629,22 +2630,18 @@ void NeonEmitter::runFP16(raw_ostream &OS) { OS << "#endif /* __ARM_FP16_H */\n"; } -namespace clang { - -void EmitNeon(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitNeon(RecordKeeper &Records, raw_ostream &OS) { NeonEmitter(Records).run(OS); } -void EmitFP16(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitFP16(RecordKeeper &Records, raw_ostream &OS) { NeonEmitter(Records).runFP16(OS); } -void EmitNeonSema(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitNeonSema(RecordKeeper &Records, raw_ostream &OS) { NeonEmitter(Records).runHeader(OS); } -void EmitNeonTest(RecordKeeper &Records, raw_ostream &OS) { +void clang::EmitNeonTest(RecordKeeper &Records, raw_ostream &OS) { llvm_unreachable("Neon test generation no longer implemented!"); } - -} // end namespace clang -- 2.40.0