================ @@ -177,6 +177,26 @@ static bool isLanguageDefinedBuiltin(const SourceManager &SourceMgr, return false; } +static bool isReservedAttrName(Preprocessor &PP, IdentifierInfo *II) { ---------------- a-tarasyuk wrote:
The reason I asked is that I recall clang has a predefined macro, `__has_cpp_attribute`, which relies on `hasAttribute`. This function uses a list of existing attributes generated from `Attr.td` for different _`Syntax`_. Should attributes currently defined in clang (for example, `indeterminate` isn’t defined yet) be disallowed, or should all cpp attribute names from the standard be considered? --- https://github.com/llvm/llvm-project/blob/357bd61744bb8cc2b9b07447294fa977e5758550/clang/lib/Lex/PPMacroExpansion.cpp#L1915-L1920 https://github.com/llvm/llvm-project/blob/357bd61744bb8cc2b9b07447294fa977e5758550/clang/lib/Basic/Attributes.cpp#L31 https://github.com/llvm/llvm-project/blob/357bd61744bb8cc2b9b07447294fa977e5758550/clang/lib/Basic/Attributes.cpp#L26 ``` ... if (ScopeName == "") { return llvm::StringSwitch<int>(Name) .Case("noreturn", 200809) .Case("assume", 202207) .Case("carries_dependency", 200809) .Case("deprecated", 201309) .Case("fallthrough", 201603) .Case("likely", 201803) .Case("no_unique_address", true && ( Target.getCXXABI().isItaniumFamily() ) ? 201803 : 0) .Case("unlikely", 201803) .Case("maybe_unused", 201603) .Case("nodiscard", 201907) .Default(0); ... ``` https://github.com/llvm/llvm-project/pull/106036 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits