================ @@ -186,14 +186,14 @@ class AttributeCommonInfo { bool isGNUScope() const; bool isClangScope() const; - bool isCXX11Attribute() const { return SyntaxUsed == AS_CXX11 || IsAlignas; } - + bool isAlignas() const { return IsAlignas; } + bool isCXX11Attribute() const { return SyntaxUsed == AS_CXX11; } ---------------- jerinphilip wrote:
Trying to guess based on surroundings, the `AttributeCommonInfo::is<Method>(...)` corresponds consistently to [`Syntax`](https://github.com/llvm/llvm-project/blob/4345baaa02c5e2d27a727e8b2cf22d95b2842cd9/clang/include/clang/Basic/AttributeCommonInfo.h#L26-L27) enum save `isCXX11Attribute`, and assuming consistency is preferred a method with the name `isCXX11Attribute` should only tell if it corresponds to `AS_CXX11`, which is `[[ ]]` when C++ is used (consistent with `is{C23,GNU,Declspec,Microsoft,...}Attribute()`). This function body appears to imply what is defined as `attribute-specifier` ([C++](https://eel.is/c++draft/dcl.attr#nt:attribute-specifier)) prior to this change. So it may be worth renaming this and such intended usages to `isCXXAttributeSpecifier() = [[]] | alignas(..) ` which can be inferred from this instance to improve. In the [C23-draft](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf) I picked off the Wikipedia page, `alignas` appears to be a _keyword_ part of an `alignment-specifier`, while `attribute-specifier` only includes `[[ ]]`. Common ancestor for `attribute-specifier`, `alignment-specifier` appears to be something called a `specifier-qualifier-list`. Based on the below details, I have a feeling it is okay to treat this as `isCAttributeSpecifier() == [[ ]] | alignas | _Alignas ` for practical purposes, moving the term `alignment-specifier` around. <details> <summary> C (grammar) </summary> ``` specifier-qualifier-list: type-specifier-qualifier attribute-specifier-sequence_opt type-specifier-qualifier specifier-qualifier-list attribute-specifier-sequence: attribute-specifier-sequence_opt attribute-specifier attribute-specifier: [[ attribute-list ]] type-specifier-qualifier: type-specifier type-qualifier alignment-specifier alignment-specifier: alignas ( type-name ) alignas ( constant-expression ) ``` </details> https://github.com/llvm/llvm-project/pull/65638 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits