(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?)
On Tue, Oct 1, 2019 at 4:10 PM John McCall via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: rjmccall > Date: Tue Oct 1 16:12:57 2019 > New Revision: 373406 > > URL: http://llvm.org/viewvc/llvm-project?rev=373406&view=rev > Log: > Use scope qualifiers in Clang's tblgen backends to get useful > redeclaration checking. NFC. > > Modified: > cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp > cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp > cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp > > cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp > cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp > cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp > cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp > cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp > cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp > cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp > cfe/trunk/utils/TableGen/NeonEmitter.cpp > > Modified: cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangASTNodesEmitter.cpp Tue Oct 1 16:12:57 > 2019 > @@ -10,6 +10,8 @@ > // > > > //===----------------------------------------------------------------------===// > > +#include "TableGenBackends.h" > + > #include "llvm/TableGen/Record.h" > #include "llvm/TableGen/TableGenBackend.h" > #include <cctype> > @@ -173,15 +175,14 @@ void ClangASTNodesEmitter::run(raw_ostre > 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 & > OS << "#undef DECL_CONTEXT\n"; > OS << "#undef DECL_CONTEXT_BASE\n"; > } > -} // end namespace clang > > Modified: cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangAttrEmitter.cpp Tue Oct 1 16:12:57 2019 > @@ -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 emitClangAttrThisIsaIdentifi > 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 &Re > } > > // 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<Record*> Attrs = Records.getAllDerivedDefinitions("Attr"); > @@ -2556,8 +2556,6 @@ void EmitClangAttrImpl(RecordKeeper &Rec > EmitFunc("printPretty(OS, Policy)"); > } > > -} // end namespace clang > - > static void emitAttrList(raw_ostream &OS, StringRef Class, > const std::vector<Record*> &AttrList) { > for (auto Cur : AttrList) { > > Modified: cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangCommentCommandInfoEmitter.cpp Tue Oct 1 > 16:12:57 2019 > @@ -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 > 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(RecordK > OS << "COMMENT_COMMAND(" << MangledName << ")\n"; > } > } > -} // end namespace clang > > Modified: > cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- > cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp > (original) > +++ > cfe/trunk/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp > Tue Oct 1 16:12:57 2019 > @@ -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(uns > return true; > } > > -namespace clang { > -void EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper &Records, > - raw_ostream &OS) { > +void clang::EmitClangCommentHTMLNamedCharacterReferences(RecordKeeper > &Records, > + raw_ostream &OS) > { > std::vector<Record *> Tags = Records.getAllDerivedDefinitions("NCR"); > std::vector<StringMatcher::StringPair> NameToUTF8; > SmallString<32> CLiteral; > @@ -79,6 +79,3 @@ void EmitClangCommentHTMLNamedCharacterR > OS << " return StringRef();\n" > << "}\n\n"; > } > - > -} // end namespace clang > - > > Modified: cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangDataCollectorsEmitter.cpp Tue Oct 1 > 16:12:57 2019 > @@ -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(RecordKeepe > } > OS << "#undef DEF_ADD_DATA\n"; > } > -} // end namespace clang > > Modified: cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangDiagnosticsEmitter.cpp Tue Oct 1 > 16:12:57 2019 > @@ -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 &Re > OS << ")\n"; > } > } > -} // end namespace clang > > > > //===----------------------------------------------------------------------===// > // Warning Group Tables generation > @@ -1528,8 +1527,7 @@ static void emitCategoryTable(RecordKeep > 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 &R > 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<Record*> &Diags = > Records.getAllDerivedDefinitions("Diagnostic"); > > @@ -1673,7 +1669,7 @@ void writeDiagnosticText(DiagnosticTextB > } // 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 &Rec > OS << "\n"; > } > } > - > -} // end namespace clang > > Modified: cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangOpcodesEmitter.cpp Tue Oct 1 16:12:57 > 2019 > @@ -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 > 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 > > Modified: cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp Tue Oct 1 > 16:12:57 2019 > @@ -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 > 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 > > Modified: cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangOptionDocEmitter.cpp Tue Oct 1 16:12:57 > 2019 > @@ -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 > } > > } // 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 &Reco > > emitDocumentation(0, extractDocumentation(Records), DocInfo, OS); > } > -} // end namespace clang > > Modified: cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/ClangSACheckersEmitter.cpp Tue Oct 1 > 16:12:57 2019 > @@ -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_ostrea > OS << "true"; > } > > -namespace clang { > -void EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { > +void clang::EmitClangSACheckers(RecordKeeper &Records, raw_ostream &OS) { > std::vector<Record*> checkers = > Records.getAllDerivedDefinitions("Checker"); > std::vector<Record*> packages = > Records.getAllDerivedDefinitions("Package"); > > @@ -315,4 +315,3 @@ void EmitClangSACheckers(RecordKeeper &R > OS << "#endif // GET_CHECKER_OPTIONS\n" > "\n"; > } > -} // end namespace clang > > Modified: cfe/trunk/utils/TableGen/NeonEmitter.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/NeonEmitter.cpp?rev=373406&r1=373405&r2=373406&view=diff > > ============================================================================== > --- cfe/trunk/utils/TableGen/NeonEmitter.cpp (original) > +++ cfe/trunk/utils/TableGen/NeonEmitter.cpp Tue Oct 1 16:12:57 2019 > @@ -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 &O > 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 > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits