diff options
author | Steve Naroff <snaroff@apple.com> | 2008-02-11 00:06:17 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2008-02-11 00:06:17 +0000 |
commit | b43eaa5fa678d108ee804455f805a8e6cf30ca34 (patch) | |
tree | b57d2e5f5151311992563c261430e800aba17fb4 /test/Sema/invalid-struct-init.c | |
parent | a7ad98ff0919d6a24ea7c46634ea29bea551c1a0 (diff) |
Fix http://llvm.org/bugs/show_bug.cgi?id=1988.
Sema::CheckInitializerListTypes() needs to ignore invalid structures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46942 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Sema/invalid-struct-init.c')
-rw-r--r-- | test/Sema/invalid-struct-init.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/Sema/invalid-struct-init.c b/test/Sema/invalid-struct-init.c new file mode 100644 index 0000000000..1cfc0c4b21 --- /dev/null +++ b/test/Sema/invalid-struct-init.c @@ -0,0 +1,27 @@ +// RUN: clang %s -verify -fsyntax-only + +typedef struct _zend_module_entry zend_module_entry; +struct _zend_module_entry { + _efree((p)); // expected-error{{type name requires a specifier or qualifier}} \ + // expected-error{{type specifier required for parameter 'p'}} \ + // expected-error{{field '_efree' declared as a function}} +}; +typedef struct _zend_function_entry { } zend_function_entry; +typedef struct _zend_pcre_globals { } zend_pcre_globals; +zend_pcre_globals pcre_globals; + +static void zm_globals_ctor_pcre(zend_pcre_globals *pcre_globals ) { } +static void zm_globals_dtor_pcre(zend_pcre_globals *pcre_globals ) { } +static void zm_info_pcre(zend_module_entry *zend_module ) { } +static int zm_startup_pcre(int type, int module_number ) { } + +static int zm_shutdown_pcre(int type, int module_number ) { + zend_function_entry pcre_functions[] = {{ }; // expected-error{{expected '}'}} expected-error{{to match this '{'}} + zend_module_entry pcre_module_entry = { + sizeof(zend_module_entry), 20071006, 0, 0, ((void *)0), ((void *)0), + "pcre", pcre_functions, zm_startup_pcre, zm_shutdown_pcre, ((void *)0), + ((void *)0), zm_info_pcre, ((void *)0), sizeof(zend_pcre_globals), &pcre_globals, + ((void (*)(void* ))(zm_globals_ctor_pcre)), ((void (*)(void* ))(zm_globals_dtor_pcre)), + ((void *)0), 0, 0, ((void *)0), 0 + }; +} |