1 // { dg-do run { target c++11 } }
2 // { dg-options "" }
3
4 int a[2] = { 1, 2 };
5 struct S { int a; signed char b; float c; } s = { 6, 7, 8.0f };
6
7 int
main()8 main ()
9 {
10 auto & [ c, d ] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
11 auto [ e, f ] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
12 auto [ g, h, i ] = s; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
13 auto & [ j, k, l ] = s; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
14 c++;
15 d++;
16 e += 6;
17 f += 7;
18 g++;
19 h++;
20 j += 10;
21 k += 11;
22 if (c != 2 || &c != &a[0]
23 || d != 3 || &d != &a[1]
24 || e != 7 || &e == &a[0]
25 || f != 9 || &f == &a[1]
26 || g != 7 || &g == &s.a
27 || h != 8 || &h == &s.b
28 || i != 8.0f || &i == &s.c
29 || j != 16 || &j != &s.a
30 || k != 18 || &k != &s.b
31 || l != 8.0f || &l != &s.c
32 || a[0] != 2 || a[1] != 3
33 || s.a != 16 || s.b != 18 || s.c != 8.0f)
34 __builtin_abort ();
35 }
36