PR c++/85553
[official-gcc.git] / gcc / testsuite / g++.dg / ext / flexary26.C
blobaf1277287aae76e6bc011d17eaa152621fa457f9
1 // PR c++/81922
2 // { dg-do compile }
3 // { dg-options "-Wpedantic" }
5 struct S { const char *a; char b[]; };  // { dg-warning "forbids flexible array member" }
6 struct T { int a; int b[]; };   // { dg-warning "forbids flexible array member" }
7 #if __cplusplus >= 201103L
8 S c[] { "", "" };               // { dg-error "initialization of flexible array member in a nested context" "" { target c++11 } }
9                                 // { dg-warning "initialization of a flexible array member" "" { target c++11 } .-1 }
10 S d[] { "", { 0 } };            // { dg-error "initialization of flexible array member in a nested context" "" { target c++11 } }
11                                 // { dg-warning "initialization of a flexible array member" "" { target c++11 } .-1 }
12 T e[] { 1, { 2 }, 3, { 4 } };   // { dg-error "initialization of flexible array member in a nested context" "" { target c++11 } }
13                                 // { dg-warning "initialization of a flexible array member" "" { target c++11 } .-1 }
14 T f[] { 1, {}, 3, {} };         // { dg-warning "initialization of a flexible array member" "" { target c++11 } }
15 T g { 1, { 1, 2, 3 } };         // { dg-warning "initialization of a flexible array member" "" { target c++11 } }
16 S h { "abcd", "" };             // { dg-warning "initialization of a flexible array member" "" { target c++11 } }
17 #endif
18 S i[] = { "", "", "", "" };     // { dg-error "initialization of flexible array member in a nested context" }
19                                 // { dg-warning "initialization of a flexible array member" "" { target *-*-* } .-1 }
20 S j[] = { "", { 1 }, "", { 2, 3 } };    // { dg-error "initialization of flexible array member in a nested context" }
21                                 // { dg-warning "initialization of a flexible array member" "" { target *-*-* } .-1 }
22 T k[] = { 1, { 2 }, 3, { 4 } }; // { dg-error "initialization of flexible array member in a nested context" }
23                                 // { dg-warning "initialization of a flexible array member" "" { target *-*-* } .-1 }
24 T l[] = { 1, {}, 3, {} };       // { dg-warning "initialization of a flexible array member" }
25 T m = { 1, { 1, 2, 3 } };       // { dg-warning "initialization of a flexible array member" }
26 S n = { "", "abcde" };          // { dg-warning "initialization of a flexible array member" }