================
@@ -102,11 +102,21 @@ namespace PR33839 {
     for (auto [x] : a) { // expected-warning {{unused variable '[x]'}}
     }
   }
-  void use() { 
+  void use() {
     f<int>(); // expected-note {{instantiation of}}
     g<true>();
     g<false>();
     h<int>(); // expected-note {{instantiation of}}
   }
 }
+
+namespace maybe_unused_binding {
+
+void test() {
+  struct X { int a, b; } x;
+  auto [a [[maybe_unused]], b] = x; // expected-warning {{an attribute 
specifier sequence attached to a structured binding declaration is a C++2c 
extension}}
----------------
cor3ntin wrote:

> Are there any standard attributes other than this that make sense on SB's? If 
> not, I'd like all of the standards ones tested to show what the behavior is 
> (and 'not valid here' type errors are totally acceptable).

No, I can add tests

> 
> `[[indeterminate]]` seems useful, but the rest should likely result in a 
> rejection.

We do not have this one
> 
> Additionally, we should do an audit of ALL our "C++" spelling attributes to 
> see which make sense here and to make sure they are treated reasonably. I'm 
> not asking to do that HERE, but a bug in our bug tracker (perhaps with a 
> 'good starter bug' tag, particularly if we list ALL our attributes that need 
> auditing) would be acceptable.

Yes, I can create an issue once we land that

https://github.com/llvm/llvm-project/pull/89906
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to