blob: 6574028217fa66818d897897475637ccd575addd [file] [log] [blame]
// { dg-do run { target c++11 } }
// { dg-options "" }
typedef int V __attribute__((vector_size (4 * sizeof (int))));
V a = (V) { 1, 2, 3, 4 };
__complex__ double b = 5.0 + 6.0i;
__complex__ int c = 7 + 8i;
int
main ()
{
auto & [ d, e, f, g ] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto [ h, i, j, k ] = a; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto [ l, m ] = b; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto & [ n, o ] = b; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto & [ p, q ] = c; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
auto [ r, s ] = c; // { dg-warning "structured bindings only available with" "" { target c++14_down } }
d += 10;
e += 11;
f += 12;
g += 13;
h += 14;
i += 15;
j += 16;
k += 17;
l = l * 2.;
m = m * 3.;
n = n * 3.;
o = o * 2.;
p += 18;
q += 19;
r += 22;
s += 23;
if (d != 11 || &d != &a[0]
|| e != 13 || &e != &a[1]
|| f != 15 || &f != &a[2]
|| g != 17 || &g != &a[3]
|| h != 15 || &h == &a[0]
|| i != 17 || &i == &a[1]
|| j != 19 || &j == &a[2]
|| k != 21 || &k == &a[3]
|| l != 10.0 || &l == &__real__ b
|| m != 18.0 || &m == &__imag__ b
|| n != 15.0 || &n != &__real__ b
|| o != 12.0 || &o != &__imag__ b
|| p != 25 || &p != &__real__ c
|| q != 27 || &q != &__imag__ c
|| r != 29 || &r == &__real__ c
|| s != 31 || &s == &__imag__ c
|| a[0] != 11 || a[1] != 13 || a[2] != 15 || a[3] != 17
|| b != 15.0 + 12.0i
|| c != 25 + 27i)
__builtin_abort ();
}