1 // RUN: %clang_cc1 %s -verify -fsyntax-only 2 3 typedef struct _zend_module_entry zend_module_entry; 4 struct _zend_module_entry { 5 _efree((p)); // expected-error{{type name requires a specifier or qualifier}} \ 6 expected-error{{field '_efree' declared as a function}} \ 7 expected-warning {{type specifier missing, defaults to 'int'}} \ 8 expected-warning {{type specifier missing, defaults to 'int'}} 9 10 }; 11 typedef struct _zend_function_entry { } zend_function_entry; 12 typedef struct _zend_pcre_globals { } zend_pcre_globals; 13 zend_pcre_globals pcre_globals; 14 15 static void zm_globals_ctor_pcre(zend_pcre_globals *pcre_globals ) { } 16 static void zm_globals_dtor_pcre(zend_pcre_globals *pcre_globals ) { } 17 static void zm_info_pcre(zend_module_entry *zend_module ) { } 18 static int zm_startup_pcre(int type, int module_number ) { } 19 20 static int zm_shutdown_pcre(int type, int module_number ) { 21 zend_function_entry pcre_functions[] = {{ }; // expected-error{{expected '}'}} expected-note {{to match this '{'}} 22 zend_module_entry pcre_module_entry = { 23 sizeof(zend_module_entry), 20071006, 0, 0, ((void *)0), ((void *)0), 24 "pcre", pcre_functions, zm_startup_pcre, zm_shutdown_pcre, ((void *)0), 25 ((void *)0), zm_info_pcre, ((void *)0), sizeof(zend_pcre_globals), &pcre_globals, 26 ((void (*)(void* ))(zm_globals_ctor_pcre)), ((void (*)(void* ))(zm_globals_dtor_pcre)), 27 ((void *)0), 0, 0, ((void *)0), 0 28 }; 29 } 30