diff options
author | Lee Millward <lee.millward@codesourcery.com> | 2006-12-02 16:34:26 +0000 |
---|---|---|
committer | Lee Millward <lmillward@gcc.gnu.org> | 2006-12-02 16:34:26 +0000 |
commit | f1f66b423f6033acb84815a34b66b231d6cf9816 (patch) | |
tree | bcebee8678ff5fef2ad9a5caab017702e2e1d785 | |
parent | cc0faf9dc9bd8e74387359cb40fc95de92ea5e2f (diff) | |
download | gcc-f1f66b423f6033acb84815a34b66b231d6cf9816.zip gcc-f1f66b423f6033acb84815a34b66b231d6cf9816.tar.gz gcc-f1f66b423f6033acb84815a34b66b231d6cf9816.tar.bz2 |
re PR c/27953 (ICE with invalid function definitions)
PR c/27953
* c-decl.c (store_parm_decls_oldstyle): Robustify
* gcc.dg/pr27953.c: New test.
From-SVN: r119446
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-decl.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr27953.C | 4 |
4 files changed, 16 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eef0bb0..e1ae8cb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-12-02 Lee Millward <lee.millward@codesourcery.com> + + PR c/27953 + * c-decl.c (store_parm_decls_oldstyle): Robustify. + 2006-11-30 Jan Hubicka <jh@suse.cz> Uros Bizjak <ubizjak@gmail.com> diff --git a/gcc/c-decl.c b/gcc/c-decl.c index fa1c340..bd737d1 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -6482,8 +6482,8 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info) tree type; for (parm = DECL_ARGUMENTS (fndecl), type = current_function_prototype_arg_types; - parm || (type && (TYPE_MAIN_VARIANT (TREE_VALUE (type)) - != void_type_node)); + parm || (type && TREE_VALUE (type) != error_mark_node + && (TYPE_MAIN_VARIANT (TREE_VALUE (type)) != void_type_node)); parm = TREE_CHAIN (parm), type = TREE_CHAIN (type)) { if (parm == 0 || type == 0 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index df43234..6159e46 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-12-02 Lee Millward <lee.millward@codesourcery.com> + + PR c/27953 + * gcc.dg/pr27953.c: New test. + 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de> PR c++/30022 diff --git a/gcc/testsuite/gcc.dg/pr27953.C b/gcc/testsuite/gcc.dg/pr27953.C new file mode 100644 index 0000000..1424e54 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr27953.C @@ -0,0 +1,4 @@ +/* PR c/27953 */ + +void foo(struct A a) {} /* { dg-error "parameter list|definition|incomplete type" } */ +void foo() {} /* { dg-error "redefinition" }
\ No newline at end of file |