1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wvla-extension %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}
27