blob: 330689178634a3cd6127601f2739b100cf8fa298 [file] [log] [blame]
// { dg-do run { target c++11 } }
// { dg-options "" }
int a[2] = { 1, 2 };
struct S { int a; signed char b; float c; } s = { 6, 7, 8.0f };
int
main ()
{
auto & [ c, d ] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto [ e, f ] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto [ g, h, i ] = s; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto & [ j, k, l ] = s; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
c++;
d++;
e += 6;
f += 7;
g++;
h++;
j += 10;
k += 11;
if (c != 2 || &c != &a[0]
|| d != 3 || &d != &a[1]
|| e != 7 || &e == &a[0]
|| f != 9 || &f == &a[1]
|| g != 7 || &g == &s.a
|| h != 8 || &h == &s.b
|| i != 8.0f || &i == &s.c
|| j != 16 || &j != &s.a
|| k != 18 || &k != &s.b
|| l != 8.0f || &l != &s.c
|| a[0] != 2 || a[1] != 3
|| s.a != 16 || s.b != 18 || s.c != 8.0f)
__builtin_abort ();
}