blob: b740e3977591dbf5ffc580e1bc173362fe602fce [file] [log] [blame]
Douglas Gregor57cbb142013-01-07 20:03:16 +00001// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wvla %s
2struct StillPOD {
3 StillPOD() = default;
4};
5
6struct StillPOD2 {
7 StillPOD np;
8};
9
10struct NonPOD {
11 NonPOD(int) {}
12};
13
14struct POD {
15 int x;
16 int y;
17};
18
19// We allow VLAs of POD types, only.
20void vla(int N) {
21 int array1[N]; // expected-warning{{variable length arrays are a C99 feature}}
22 POD array2[N]; // expected-warning{{variable length arrays are a C99 feature}}
23 StillPOD array3[N]; // expected-warning{{variable length arrays are a C99 feature}}
24 StillPOD2 array4[N][3]; // expected-warning{{variable length arrays are a C99 feature}}
25 NonPOD array5[N]; // expected-error{{variable length array of non-POD element type 'NonPOD'}}
26}