1*67e74705SXin Li // RUN: %clang_cc1 %s -fsyntax-only -verify 2*67e74705SXin Li test()3*67e74705SXin Livoid test() { 4*67e74705SXin Li char = 4; // expected-error {{expected identifier}} 5*67e74705SXin Li } 6*67e74705SXin Li 7*67e74705SXin Li 8*67e74705SXin Li // PR2400 9*67e74705SXin Li typedef xtype (*x)(void* handle); // expected-error {{function cannot return function type}} expected-warning {{type specifier missing, defaults to 'int'}} expected-warning {{type specifier missing, defaults to 'int'}} 10*67e74705SXin Li 11*67e74705SXin Li typedef void ytype(); 12*67e74705SXin Li 13*67e74705SXin Li 14*67e74705SXin Li typedef struct _zend_module_entry zend_module_entry; 15*67e74705SXin Li struct _zend_module_entry { 16*67e74705SXin Li ytype globals_size; // expected-error {{field 'globals_size' declared as a function}} 17*67e74705SXin Li }; 18*67e74705SXin Li 19*67e74705SXin Li zend_module_entry openssl_module_entry = { 20*67e74705SXin Li sizeof(zend_module_entry) 21*67e74705SXin Li }; 22*67e74705SXin Li 23*67e74705SXin Li // <rdar://problem/11067144> 24*67e74705SXin Li typedef int (FunctionType)(int *value); 25*67e74705SXin Li typedef struct { 26*67e74705SXin Li UndefinedType undef; // expected-error {{unknown type name 'UndefinedType'}} 27*67e74705SXin Li FunctionType fun; // expected-error {{field 'fun' declared as a function}} 28*67e74705SXin Li } StructType; f(StructType * buf)29*67e74705SXin Livoid f(StructType *buf) { 30*67e74705SXin Li buf->fun = 0; 31*67e74705SXin Li } 32*67e74705SXin Li 33*67e74705SXin Li // rdar://11743706 34*67e74705SXin Li static void bar(hid_t, char); // expected-error {{expected identifier}} 35*67e74705SXin Li 36*67e74705SXin Li static void bar(hid_t p, char); // expected-error {{unknown type name 'hid_t'}} 37*67e74705SXin Li foo()38*67e74705SXin Livoid foo() { 39*67e74705SXin Li (void)bar; 40*67e74705SXin Li } 41*67e74705SXin Li 42*67e74705SXin Li void test2(); 43*67e74705SXin Li void test2(undef); // expected-error {{a parameter list without types is only allowed in a function definition}} test2()44*67e74705SXin Livoid test2() { } 45*67e74705SXin Li 46*67e74705SXin Li void test3(); 47*67e74705SXin Li void test3; // expected-error {{incomplete type}} test3()48*67e74705SXin Livoid test3() { } 49*67e74705SXin Li 50*67e74705SXin Li void ellipsis1(...); // expected-error {{ISO C requires a named parameter before '...'}} 51