[lld][WebAssembly] Reinstate mistakenly disabled test. NFC
[llvm-project.git] / clang / test / Parser / expressions.c
blob64b44470f7e745598d92cac9394b9d645d2a3826
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 void test1() {
4 if (sizeof (int){ 1}) {} // sizeof compound literal
5 if (sizeof (int)) {} // sizeof type
7 (void)(int)4; // cast.
8 (void)(int){4}; // compound literal.
10 int A = (struct{ int a;}){ 1}.a;
13 int test2(int a, int b) {
14 return a ? (void)a,b : a;
17 int test3(int a, int b, int c) {
18 return a = b = c;
21 int test4() {
22 test4();
23 return 0;
26 struct X0 { struct { struct { int c[10][9]; } b; } a; };
28 int test_offsetof() {
29 (void)__builtin_offsetof(struct X0, a.b.c[4][5]);
30 return 0;
33 void test_sizeof(){
34 int arr[10];
35 (void)sizeof arr[0];
36 (void)sizeof(arr[0]);
37 (void)sizeof(arr)[0];
40 // PR3418
41 int test_leading_extension() {
42 __extension__ (*(char*)0) = 1; // expected-warning {{indirection of non-volatile null pointer}} \
43 // expected-note {{consider using __builtin_trap}}
44 return 0;
47 // PR3972
48 int test5(int);
49 int test6(void) {
50 return test5( // expected-note {{to match}}
51 test5(1)
52 ; // expected-error {{expected ')'}}
55 // PR8394
56 void test7() {
57 ({} // expected-note {{to match}}
58 ; // expected-error {{expected ')'}}
61 // PR16992
62 struct pr16992 { int x; };
64 void func_16992 () {
65 int x1 = sizeof int; // expected-error {{expected parentheses around type name in sizeof expression}}
66 int x2 = sizeof struct pr16992; // expected-error {{expected parentheses around type name in sizeof expression}}
67 int x3 = __alignof int; // expected-error {{expected parentheses around type name in __alignof expression}}
68 int x4 = _Alignof int; // expected-error {{expected parentheses around type name in _Alignof expression}}
71 void callee(double, double);
72 void test8() {
73 callee(foobar, // expected-error {{use of undeclared identifier 'foobar'}}
74 fizbin); // expected-error {{use of undeclared identifier 'fizbin'}}