131
|
1 // PR c++/81922
|
|
2 // { dg-do compile }
|
|
3 // { dg-options "-Wpedantic" }
|
|
4
|
145
|
5 struct S { const char *a; char b[]; }; // { dg-warning "32:ISO C\\+\\+ forbids flexible array member" }
|
|
6 struct T { int a; int b[]; }; // { dg-warning "23:ISO C\\+\\+ forbids flexible array member" }
|
131
|
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" }
|