r373406 - Use scope qualifiers in Clang's tblgen backends to get useful
David Blaikie via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 3 14:22:22 PDT 2019
(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 at 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 at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191003/ded9a020/attachment-0001.html>
More information about the cfe-commits
mailing list