1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 test1()3void test1() { 4 if (sizeof (int){ 1}) {} // sizeof compound literal 5 if (sizeof (int)) {} // sizeof type 6 7 (void)(int)4; // cast. 8 (void)(int){4}; // compound literal. 9 10 int A = (struct{ int a;}){ 1}.a; 11 } 12 test2(int a,int b)13int test2(int a, int b) { 14 return a ? (void)a,b : a; 15 } 16 test3(int a,int b,int c)17int test3(int a, int b, int c) { 18 return a = b = c; 19 } 20 test4()21int test4() { 22 test4(); 23 return 0; 24 } 25 26 struct X0 { struct { struct { int c[10][9]; } b; } a; }; 27 test_offsetof()28int test_offsetof() { 29 (void)__builtin_offsetof(struct X0, a.b.c[4][5]); 30 return 0; 31 } 32 test_sizeof()33void test_sizeof(){ 34 int arr[10]; 35 (void)sizeof arr[0]; 36 (void)sizeof(arr[0]); 37 (void)sizeof(arr)[0]; 38 } 39 40 // PR3418 test_leading_extension()41int 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; 45 } 46 47 // PR3972 48 int test5(int); test6(void)49int test6(void) { 50 return test5( // expected-note {{to match}} 51 test5(1) 52 ; // expected-error {{expected ')'}} 53 } 54 55 // PR8394 56 void test7() { 57 ({} // expected-note {{to match}} 58 ; // expected-error {{expected ')'}} 59 } 60