================ @@ -50,8 +50,8 @@ struct testRecoverStrictnessStruct { }; #pragma clang attribute pop -#pragma clang attribute push (__attribute__((abi_tag("a"))), apply_to = any(function, record(unless(is_union)), variable, enum)) -// expected-error@-1 {{attribute 'abi_tag' cannot be applied to 'enum'}} +#pragma clang attribute push (__attribute__((abi_tag("a"))), apply_to = any(function, record(unless(is_union)), variable, enum)) // expected-warning {{attribute 'abi_tag' cannot be applied to a 'void' parameter}} + // expected-error@-1 {{attribute 'abi_tag' cannot be applied to 'enum'}} ---------------- AaronBallman wrote:
```suggestion #pragma clang attribute push (__attribute__((abi_tag("a"))), apply_to = any(function, record(unless(is_union)), variable, enum)) // expected-warning@-1 {{attribute 'abi_tag' cannot be applied to a 'void' parameter}} // expected-error@-2 {{attribute 'abi_tag' cannot be applied to 'enum'}} ``` I *think* this is actually a bug with the way `clang attribute push` works. A `void` parameter is not a variable because it doesn't really declare a parameter (there's no object backing the parameter like there is for other cases). WDYT @erichkeane? https://github.com/llvm/llvm-project/pull/124920 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits