aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp')
-rw-r--r--contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp59
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)