================ @@ -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'}} ---------------- erichkeane wrote:
Ah, yeah. I think we need to fix this ASAP. the `push` pragma needs to not consider `void` to be a `parameter` (even if it is a `ParmVarDecl` at one point). Whether it needs to be fixed in THIS patch, or a followup (since we jsut did the branch, we at least have some time), I'll leave up to the author. Side note: `pragma clang attribute push` diagnostics are THE WORST here. The fact that the error/warning is on the attribute location, but doesn't point out which declaration is causing it is awful. We should probably find some way to intuit that we should probably have a 'note' here that ALSO points out which declaration it applies to. 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