================
@@ -179,13 +179,15 @@ static bool isLanguageDefinedBuiltin(const SourceManager
&SourceMgr,
static bool isReservedCXXAttributeName(Preprocessor &PP, IdentifierInfo *II) {
const LangOptions &Lang = PP.getLangOpts();
if (Lang.CPlusPlus &&
- hasAttribute(AttributeCommonInfo::Syntax::AS_CXX11, /*Scope*/ nullptr,
II,
- PP.getTargetInfo(), Lang) > 0) {
- AttributeCommonInfo::Kind AttrKind = AttributeCommonInfo::getParsedKind(
- II, /*Scope*/ nullptr, AttributeCommonInfo::Syntax::AS_CXX11);
- return !((AttrKind == AttributeCommonInfo::Kind::AT_Likely ||
- AttrKind == AttributeCommonInfo::Kind::AT_Unlikely) &&
- PP.isNextPPTokenLParen());
+ hasAttribute(AttributeCommonInfo::AS_CXX11, /* Scope*/ nullptr, II,
+ PP.getTargetInfo(), Lang, /*CheckPlugins*/ false) > 0) {
+ AttributeCommonInfo::AttrArgsInfo AttrArgsInfo =
+ AttributeCommonInfo::getCXX11AttrArgsInfo(II);
+ if (AttrArgsInfo == AttributeCommonInfo::AttrArgsInfo::Required)
----------------
a-tarasyuk wrote:
Yes. I added attribute arg information to eliminate the need for additional
logic to define how certain attributes should behave. For the new attributes,
everything will work based on the TG information, with no additional logic
needed.
https://github.com/llvm/llvm-project/pull/106036
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits