================
@@ -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

Reply via email to