diff options
author | Joseph Myers <joseph@codesourcery.com> | 2006-09-09 00:41:21 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2006-09-09 00:41:21 +0100 |
commit | 3542a5c0f694a66f6e126b71a668c51a87f609f3 (patch) | |
tree | e813322b0c544ad6765cf8b4c6af8958787846b1 /gcc/c-parser.c | |
parent | a7b9d08c3563ec731b3213c279a25e66be384d0b (diff) | |
download | gcc-3542a5c0f694a66f6e126b71a668c51a87f609f3.zip gcc-3542a5c0f694a66f6e126b71a668c51a87f609f3.tar.gz gcc-3542a5c0f694a66f6e126b71a668c51a87f609f3.tar.bz2 |
re PR c/28504 (ICE with variable sized array)
PR c/28504
* c-tree.h (struct c_arg_info): Add pending_sizes.
* c-parser.c (c_parser_parms_declarator,
c_parser_parms_list_declarator): Initialize pending_sizes.
* c-decl.c (get_parm_info): Initialize pending_sizes.
(get_parm_info): Set pending_sizes.
(grokdeclarator): Call put_pending_sizes for parameters for
function definition only.
testsuite:
* gcc.dg/vla-10.c: New test.
From-SVN: r116789
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r-- | gcc/c-parser.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 9031e5b..8520253 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -2537,6 +2537,7 @@ c_parser_parms_declarator (c_parser *parser, bool id_list_ok, tree attrs) ret->tags = 0; ret->types = list; ret->others = 0; + ret->pending_sizes = 0; ret->had_vla_unspec = 0; c_parser_consume_token (parser); pop_scope (); @@ -2579,6 +2580,7 @@ c_parser_parms_list_declarator (c_parser *parser, tree attrs) ret->tags = 0; ret->types = 0; ret->others = 0; + ret->pending_sizes = 0; ret->had_vla_unspec = 0; c_parser_consume_token (parser); return ret; @@ -2589,6 +2591,7 @@ c_parser_parms_list_declarator (c_parser *parser, tree attrs) ret->parms = 0; ret->tags = 0; ret->others = 0; + ret->pending_sizes = 0; ret->had_vla_unspec = 0; /* Suppress -Wold-style-definition for this case. */ ret->types = error_mark_node; @@ -2640,6 +2643,7 @@ c_parser_parms_list_declarator (c_parser *parser, tree attrs) ret->tags = 0; ret->types = 0; ret->others = 0; + ret->pending_sizes = 0; ret->had_vla_unspec = 0; return ret; } @@ -2666,6 +2670,7 @@ c_parser_parms_list_declarator (c_parser *parser, tree attrs) ret->tags = 0; ret->types = 0; ret->others = 0; + ret->pending_sizes = 0; ret->had_vla_unspec = 0; return ret; } |