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

Reply via email to