// { 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 (); }