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