xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/g++.dg/ext/vla1.C (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1 // { dg-do compile }
2 
3 // Crash tests from PR middle-end/6994.  See also gcc.dg/vla-2.c.
4 // A::A is acceptable extended C++ (VLA types brought over from C99);
5 // B::B is not, but is closely related to acceptable extended C, though
6 // not to acceptable C99.
7 
8 class A { A (int); };
9 
A(int i)10 A::A (int i)
11 {
12   int ar[1][i];    // { dg-error "variable-size array" }
13 
14   ar[0][0] = 0;
15 }
16 
17 class B { B (int); };
18 
B(int i)19 B::B (int i)
20 {
21   struct S {
22     int ar[1][i];  // { dg-error "variable-size|variably modified" }
23   } s;
24 
25   s.ar[0][0] = 0;  // { dg-error "no member" }
26 }
27