1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 %s -fsyntax-only -verify 29a11b9abb9daa9d7c02e13bb4d62caaadb22477dChris Lattner 39a11b9abb9daa9d7c02e13bb4d62caaadb22477dChris Lattnervoid test() { 41f6f54be86a514d531ec231fd837858a43cfe72eChris Lattner char = 4; // expected-error {{expected identifier}} 59a11b9abb9daa9d7c02e13bb4d62caaadb22477dChris Lattner} 69a11b9abb9daa9d7c02e13bb4d62caaadb22477dChris Lattner 79a11b9abb9daa9d7c02e13bb4d62caaadb22477dChris Lattner 88389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattner// PR2400 958408bc4ead86b08af56cd06fc966fd858b48b2dDouglas Gregortypedef 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'}} 10eaaebc7cf10dc1a2016183a262ad3256bc468759Chris Lattner 11eaaebc7cf10dc1a2016183a262ad3256bc468759Chris Lattnertypedef void ytype(); 12eaaebc7cf10dc1a2016183a262ad3256bc468759Chris Lattner 138389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattner 148389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattnertypedef struct _zend_module_entry zend_module_entry; 158389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattnerstruct _zend_module_entry { 16eaaebc7cf10dc1a2016183a262ad3256bc468759Chris Lattner ytype globals_size; // expected-error {{field 'globals_size' declared as a function}} 178389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattner}; 188389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattner 198389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattnerzend_module_entry openssl_module_entry = { 208389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattner sizeof(zend_module_entry) 218389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattner}; 228389eab190afef3462f6418b8d8fb70fb01c4005Chris Lattner 2306808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedman// <rdar://problem/11067144> 2406808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedmantypedef int (FunctionType)(int *value); 2506808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedmantypedef struct { 2606808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedman UndefinedType undef; // expected-error {{unknown type name 'UndefinedType'}} 2706808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedman FunctionType fun; // expected-error {{field 'fun' declared as a function}} 2806808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedman} StructType; 2906808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedmanvoid f(StructType *buf) { 3006808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedman buf->fun = 0; 3106808f1b880f461c396450db4c6a9c6d6c6c2efcEli Friedman} 3237c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanian 3337c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanian// rdar://11743706 3437c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanianstatic void bar(hid_t, char); // expected-error {{expected identifier}} 3537c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanian 3637c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanianstatic void bar(hid_t p, char); // expected-error {{unknown type name 'hid_t'}} 3737c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanian 3837c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanianvoid foo() { 3937c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanian (void)bar; 4037c765a5ccf69fb9a467c8499675ae568811afe3Fariborz Jahanian} 41d5668a2447c2afeea38815b51a80a5a6ac235599Argyrios Kyrtzidis 42d5668a2447c2afeea38815b51a80a5a6ac235599Argyrios Kyrtzidisvoid test2(); 43d5668a2447c2afeea38815b51a80a5a6ac235599Argyrios Kyrtzidisvoid test2(undef); // expected-error {{a parameter list without types is only allowed in a function definition}} 44d5668a2447c2afeea38815b51a80a5a6ac235599Argyrios Kyrtzidisvoid test2() { } 45745af1c348191bf31cfcd3ae61443a0321ec2d75Argyrios Kyrtzidis 46745af1c348191bf31cfcd3ae61443a0321ec2d75Argyrios Kyrtzidisvoid test3(); 47745af1c348191bf31cfcd3ae61443a0321ec2d75Argyrios Kyrtzidisvoid test3; // expected-error {{incomplete type}} 48745af1c348191bf31cfcd3ae61443a0321ec2d75Argyrios Kyrtzidisvoid test3() { } 496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesvoid ellipsis1(...); // expected-error {{ISO C requires a named parameter before '...'}} 51