[llvm] d99b148 - [TableGen] Fix __CLAUSE_NO_CLASS macro leak in directive emitter (#82912)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 25 09:34:42 PST 2024
Author: FruitClover
Date: 2024-02-25T20:34:38+03:00
New Revision: d99b1481770e4f8454c7f238dcd40c8e977e6b70
URL: https://github.com/llvm/llvm-project/commit/d99b1481770e4f8454c7f238dcd40c8e977e6b70
DIFF: https://github.com/llvm/llvm-project/commit/d99b1481770e4f8454c7f238dcd40c8e977e6b70.diff
LOG: [TableGen] Fix __CLAUSE_NO_CLASS macro leak in directive emitter (#82912)
`__CLAUSE_NO_CLASS` was not undefined inside the
`GEN_CLANG_CLAUSE_CLASS` block, resulting in macro redifinition warnings
when several generated directives are used simultaneously.
Added:
Modified:
llvm/test/TableGen/directive1.td
llvm/test/TableGen/directive2.td
llvm/utils/TableGen/DirectiveEmitter.cpp
Removed:
################################################################################
diff --git a/llvm/test/TableGen/directive1.td b/llvm/test/TableGen/directive1.td
index b249f2bf5fc689..bcd9fa34c99d3a 100644
--- a/llvm/test/TableGen/directive1.td
+++ b/llvm/test/TableGen/directive1.td
@@ -258,6 +258,7 @@ def TDL_DirA : Directive<"dira"> {
// IMPL-EMPTY:
// IMPL-NEXT: #undef __IMPLICIT_CLAUSE_NO_CLASS
// IMPL-NEXT: #undef __IMPLICIT_CLAUSE_CLASS
+// IMPL-NEXT: #undef __CLAUSE_NO_CLASS
// IMPL-NEXT: #undef __CLAUSE
// IMPL-NEXT: #undef CLAUSE_NO_CLASS
// IMPL-NEXT: #undef CLAUSE_CLASS
diff --git a/llvm/test/TableGen/directive2.td b/llvm/test/TableGen/directive2.td
index 154d1e86ffb1d6..01741152956d22 100644
--- a/llvm/test/TableGen/directive2.td
+++ b/llvm/test/TableGen/directive2.td
@@ -206,6 +206,7 @@ def TDL_DirA : Directive<"dira"> {
// IMPL-EMPTY:
// IMPL-NEXT: #undef __IMPLICIT_CLAUSE_NO_CLASS
// IMPL-NEXT: #undef __IMPLICIT_CLAUSE_CLASS
+// IMPL-NEXT: #undef __CLAUSE_NO_CLASS
// IMPL-NEXT: #undef __CLAUSE
// IMPL-NEXT: #undef CLAUSE_NO_CLASS
// IMPL-NEXT: #undef CLAUSE_CLASS
diff --git a/llvm/utils/TableGen/DirectiveEmitter.cpp b/llvm/utils/TableGen/DirectiveEmitter.cpp
index b6aee665f8ee0b..99eebacd6b3f32 100644
--- a/llvm/utils/TableGen/DirectiveEmitter.cpp
+++ b/llvm/utils/TableGen/DirectiveEmitter.cpp
@@ -842,6 +842,7 @@ static void GenerateClauseClassMacro(const DirectiveLanguage &DirLang,
OS << "\n";
OS << "#undef __IMPLICIT_CLAUSE_NO_CLASS\n";
OS << "#undef __IMPLICIT_CLAUSE_CLASS\n";
+ OS << "#undef __CLAUSE_NO_CLASS\n";
OS << "#undef __CLAUSE\n";
OS << "#undef CLAUSE_NO_CLASS\n";
OS << "#undef CLAUSE_CLASS\n";
More information about the llvm-commits
mailing list