1 // RUN: clang-cc %s -verify -fsyntax-only -pedantic
4 typedef int x
[test1()]; // vla
5 static int y
= sizeof(x
); // expected-error {{not a compile-time constant}}
9 void f (unsigned int m
)
17 int x
= sizeof(struct{char qq
[x
];}); // expected-error {{fields must have a constant size}}
20 void f2(unsigned int m
)
22 extern int e1
[2][m
]; // expected-error {{variable length array declaration can not have 'extern' linkage}}
30 int c
[][i
]; // expected-error {{variably modified type declaration not allowed at file scope}}
31 int d
[i
]; // expected-error {{variable length array declaration not allowed at file scope}}
33 int (*e
)[i
]; // expected-error {{variably modified type declaration not allowed at file scope}}
37 static int a
[i
]; // expected-error {{variable length array declaration can not have 'static' storage duration}}
38 extern int b
[i
]; // expected-error {{variable length array declaration can not have 'extern' linkage}}
40 extern int (*c1
)[i
]; // expected-error {{variably modified type declaration can not have 'extern' linkage}}
45 static const unsigned array
[((2 * (int)((((4) / 2) + 1.0/3.0) * (4) - 1e-8)) + 1)]; // expected-warning {{size of static array must be an integer constant expression}}
47 int a
[*]; // expected-error {{star modifier used outside of function prototype}}
51 int pr2044(int b
) {int (*c(void))[b
];**c() = 2;} // expected-error {{variably modified type}}
53 int (*pr2044c(void))[pr2044b
]; // expected-error {{variably modified type}}
56 void f5() { char a
[][f5_ci
] = {""}; } // expected-error {{variable-sized object may not be initialized}}