diff options
Diffstat (limited to 'contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp')
-rw-r--r-- | contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp | 59 |
1 files changed, 33 insertions, 26 deletions
diff --git a/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp b/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp index 0e45d81d1af5..4484e65097cf 100644 --- a/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp +++ b/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp @@ -24,15 +24,14 @@ using namespace clang; enum ActionType { GenClangAttrClasses, - GenClangAttrIdentifierArgList, - GenClangAttrTypeArgList, + GenClangAttrParserStringSwitches, GenClangAttrImpl, GenClangAttrList, GenClangAttrPCHRead, GenClangAttrPCHWrite, - GenClangAttrSpellingList, + GenClangAttrHasAttributeImpl, GenClangAttrSpellingListIndex, - GenClangAttrLateParsedList, + GenClangAttrASTVisitor, GenClangAttrTemplateInstantiate, GenClangAttrParsedAttrList, GenClangAttrParsedAttrImpl, @@ -52,7 +51,8 @@ enum ActionType { GenClangCommentCommandList, GenArmNeon, GenArmNeonSema, - GenArmNeonTest + GenArmNeonTest, + GenAttrDocs }; namespace { @@ -61,14 +61,9 @@ cl::opt<ActionType> Action( cl::values( clEnumValN(GenClangAttrClasses, "gen-clang-attr-classes", "Generate clang attribute clases"), - clEnumValN(GenClangAttrIdentifierArgList, - "gen-clang-attr-identifier-arg-list", - "Generate a list of attributes that take an " - "identifier as their first argument"), - clEnumValN(GenClangAttrTypeArgList, - "gen-clang-attr-type-arg-list", - "Generate a list of attributes that take a type as their " - "first argument"), + clEnumValN(GenClangAttrParserStringSwitches, + "gen-clang-attr-parser-string-switches", + "Generate all parser-related attribute string switches"), clEnumValN(GenClangAttrImpl, "gen-clang-attr-impl", "Generate clang attribute implementations"), clEnumValN(GenClangAttrList, "gen-clang-attr-list", @@ -77,14 +72,15 @@ cl::opt<ActionType> Action( "Generate clang PCH attribute reader"), clEnumValN(GenClangAttrPCHWrite, "gen-clang-attr-pch-write", "Generate clang PCH attribute writer"), - clEnumValN(GenClangAttrSpellingList, "gen-clang-attr-spelling-list", + clEnumValN(GenClangAttrHasAttributeImpl, + "gen-clang-attr-has-attribute-impl", "Generate a clang attribute spelling list"), clEnumValN(GenClangAttrSpellingListIndex, "gen-clang-attr-spelling-index", "Generate a clang attribute spelling index"), - clEnumValN(GenClangAttrLateParsedList, - "gen-clang-attr-late-parsed-list", - "Generate a clang attribute LateParsed list"), + clEnumValN(GenClangAttrASTVisitor, + "gen-clang-attr-ast-visitor", + "Generate a recursive AST visitor for clang attributes"), clEnumValN(GenClangAttrTemplateInstantiate, "gen-clang-attr-template-instantiate", "Generate a clang template instantiate code"), @@ -135,6 +131,8 @@ cl::opt<ActionType> Action( "Generate ARM NEON sema support for clang"), clEnumValN(GenArmNeonTest, "gen-arm-neon-test", "Generate ARM NEON tests for clang"), + clEnumValN(GenAttrDocs, "gen-attr-docs", + "Generate attribute documentation"), clEnumValEnd)); cl::opt<std::string> @@ -147,11 +145,8 @@ bool ClangTableGenMain(raw_ostream &OS, RecordKeeper &Records) { case GenClangAttrClasses: EmitClangAttrClass(Records, OS); break; - case GenClangAttrIdentifierArgList: - EmitClangAttrIdentifierArgList(Records, OS); - break; - case GenClangAttrTypeArgList: - EmitClangAttrTypeArgList(Records, OS); + case GenClangAttrParserStringSwitches: + EmitClangAttrParserStringSwitches(Records, OS); break; case GenClangAttrImpl: EmitClangAttrImpl(Records, OS); @@ -165,14 +160,14 @@ bool ClangTableGenMain(raw_ostream &OS, RecordKeeper &Records) { case GenClangAttrPCHWrite: EmitClangAttrPCHWrite(Records, OS); break; - case GenClangAttrSpellingList: - EmitClangAttrSpellingList(Records, OS); + case GenClangAttrHasAttributeImpl: + EmitClangAttrHasAttrImpl(Records, OS); break; case GenClangAttrSpellingListIndex: EmitClangAttrSpellingListIndex(Records, OS); break; - case GenClangAttrLateParsedList: - EmitClangAttrLateParsedList(Records, OS); + case GenClangAttrASTVisitor: + EmitClangAttrASTVisitor(Records, OS); break; case GenClangAttrTemplateInstantiate: EmitClangAttrTemplateInstantiate(Records, OS); @@ -235,6 +230,9 @@ bool ClangTableGenMain(raw_ostream &OS, RecordKeeper &Records) { case GenArmNeonTest: EmitNeonTest(Records, OS); break; + case GenAttrDocs: + EmitClangAttrDocs(Records, OS); + break; } return false; @@ -248,3 +246,12 @@ int main(int argc, char **argv) { return TableGenMain(argv[0], &ClangTableGenMain); } + +#ifdef __has_feature +#if __has_feature(address_sanitizer) +#include <sanitizer/lsan_interface.h> +// Disable LeakSanitizer for this binary as it has too many leaks that are not +// very interesting to fix. See compiler-rt/include/sanitizer/lsan_interface.h . +int __lsan_is_turned_off() { return 1; } +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) |