diff options
-rw-r--r-- | clang/include/clang/Basic/Attr.td | 7 | ||||
-rw-r--r-- | clang/utils/TableGen/ClangAttrEmitter.cpp | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index 484691f..c2504ba 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -312,6 +312,7 @@ class SubjectList<list<AttrSubject> subjects, SubjectDiag diag = WarnDiag, } class LangOpt<string name, code customCode = [{}]> { + // The language option to test; ignored when custom code is supplied. string Name = name; // A custom predicate, written as an expression evaluated in a context with @@ -323,15 +324,15 @@ def Borland : LangOpt<"Borland">; def CUDA : LangOpt<"CUDA">; def HIP : LangOpt<"HIP">; def SYCL : LangOpt<"SYCLIsDevice">; -def COnly : LangOpt<"COnly", "!LangOpts.CPlusPlus">; +def COnly : LangOpt<"", "!LangOpts.CPlusPlus">; def CPlusPlus : LangOpt<"CPlusPlus">; def OpenCL : LangOpt<"OpenCL">; def RenderScript : LangOpt<"RenderScript">; def ObjC : LangOpt<"ObjC">; def BlocksSupported : LangOpt<"Blocks">; def ObjCAutoRefCount : LangOpt<"ObjCAutoRefCount">; -def ObjCNonFragileRuntime : LangOpt<"ObjCNonFragileRuntime", - "LangOpts.ObjCRuntime.allowsClassStubs()">; +def ObjCNonFragileRuntime + : LangOpt<"", "LangOpts.ObjCRuntime.allowsClassStubs()">; // Language option for CMSE extensions def Cmse : LangOpt<"Cmse">; diff --git a/clang/utils/TableGen/ClangAttrEmitter.cpp b/clang/utils/TableGen/ClangAttrEmitter.cpp index 20fb9bc..529145e 100644 --- a/clang/utils/TableGen/ClangAttrEmitter.cpp +++ b/clang/utils/TableGen/ClangAttrEmitter.cpp @@ -1980,6 +1980,11 @@ static std::string GenerateTestExpression(ArrayRef<Record *> LangOpts) { Test += "("; Test += Code; Test += ")"; + if (!E->getValueAsString("Name").empty()) { + PrintWarning( + E->getLoc(), + "non-empty 'Name' field ignored because 'CustomCode' was supplied"); + } } else { Test += "LangOpts."; Test += E->getValueAsString("Name"); |