|  | // RUN: %clang_cc1 -fsyntax-only -verify %s | 
|  |  | 
|  | void test1() { | 
|  | if (sizeof (int){ 1}) {}   // sizeof compound literal | 
|  | if (sizeof (int)) {}       // sizeof type | 
|  |  | 
|  | (void)(int)4;   // cast. | 
|  | (void)(int){4}; // compound literal. | 
|  |  | 
|  | int A = (struct{ int a;}){ 1}.a; | 
|  | } | 
|  |  | 
|  | int test2(int a, int b) { | 
|  | return a ? (void)a,b : a; | 
|  | } | 
|  |  | 
|  | int test3(int a, int b, int c) { | 
|  | return a = b = c; | 
|  | } | 
|  |  | 
|  | int test4() { | 
|  | test4(); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | struct X0 { struct { struct { int c[10][9]; } b; } a; }; | 
|  |  | 
|  | int test_offsetof() { | 
|  | (void)__builtin_offsetof(struct X0, a.b.c[4][5]); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | void test_sizeof(){ | 
|  | int arr[10]; | 
|  | (void)sizeof arr[0]; | 
|  | (void)sizeof(arr[0]); | 
|  | (void)sizeof(arr)[0]; | 
|  | } | 
|  |  | 
|  | // PR3418 | 
|  | int test_leading_extension() { | 
|  | __extension__ (*(char*)0) = 1; // expected-warning {{indirection of non-volatile null pointer}} \ | 
|  | // expected-note {{consider using __builtin_trap}} | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | // PR3972 | 
|  | int test5(int); | 
|  | int test6(void) { | 
|  | return test5(      // expected-note {{to match}} | 
|  | test5(1) | 
|  | ; // expected-error {{expected ')'}} | 
|  | } | 
|  |  | 
|  | // PR8394 | 
|  | void test7() { | 
|  | ({} // expected-note {{to match}} | 
|  | ;   // expected-error {{expected ')'}} | 
|  | } | 
|  |  | 
|  | // PR16992 | 
|  | struct pr16992 { int x; }; | 
|  |  | 
|  | void func_16992 () { | 
|  | int x1 = sizeof int;            // expected-error {{expected parentheses around type name in sizeof expression}} | 
|  | int x2 = sizeof struct pr16992; // expected-error {{expected parentheses around type name in sizeof expression}} | 
|  | int x3 = __alignof int;         // expected-error {{expected parentheses around type name in __alignof expression}} | 
|  | int x4 = _Alignof int;          // expected-error {{expected parentheses around type name in _Alignof expression}} | 
|  | } | 
|  |  | 
|  | void callee(double, double); | 
|  | void test8() { | 
|  | callee(foobar,   // expected-error {{use of undeclared identifier 'foobar'}} | 
|  | fizbin);  // expected-error {{use of undeclared identifier 'fizbin'}} | 
|  | } |