aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2006-09-09 00:41:21 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2006-09-09 00:41:21 +0100
commit3542a5c0f694a66f6e126b71a668c51a87f609f3 (patch)
treee813322b0c544ad6765cf8b4c6af8958787846b1 /gcc/c-parser.c
parenta7b9d08c3563ec731b3213c279a25e66be384d0b (diff)
downloadgcc-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.c5
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;
}