blob: 03cf28388d98f2a74675aeb110a40d69b4ece16a [file] [log] [blame]
Dmitri Gribenko630f4bb2013-01-23 20:02:51 +00001// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wvla-extension %s
Douglas Gregor57cbb142013-01-07 20:03:16 +00002struct 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}