From aa24028daf64ebdec03da6094b60c49f0823a16b Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Sun, 15 Apr 2007 00:59:15 +0000 Subject: re PR c/31520 (Latent bug in finish_decl causing an errorous "array subscript is above array bounds") 2007-04-14 Andrew Pinski PR c/31520 * c-del.c (finish_decl): Grab the type of the decl after the call to store_init_value. 2007-04-14 Andrew Pinski PR C/31520 * testsuite/gcc.dg/gnu89-init-4.c: New testcase. From-SVN: r123835 --- gcc/c-decl.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/c-decl.c') diff --git a/gcc/c-decl.c b/gcc/c-decl.c index eaef0a5..5839fc2 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -3383,7 +3383,7 @@ c_maybe_initialize_eh (void) void finish_decl (tree decl, tree init, tree asmspec_tree) { - tree type = TREE_TYPE (decl); + tree type; int was_incomplete = (DECL_SIZE (decl) == 0); const char *asmspec = 0; @@ -3410,6 +3410,8 @@ finish_decl (tree decl, tree init, tree asmspec_tree) || TREE_CODE (decl) == FIELD_DECL)) objc_check_decl (decl); + type = TREE_TYPE (decl); + /* Deduce size of array from initialization, if not already known. */ if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type) == 0 -- cgit v1.1