aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-04-11 15:44:23 -0700
committerRichard Henderson <rth@gcc.gnu.org>2003-04-11 15:44:23 -0700
commitca06cfe69f7f89314603d636b36adeadbb70b56a (patch)
treea01ada3c6afd82cc7fff3981f62928ada47eadea /gcc/expr.c
parentd2d42a917c2a65769e78d4d430e47962b2d24ba5 (diff)
downloadgcc-ca06cfe69f7f89314603d636b36adeadbb70b56a.zip
gcc-ca06cfe69f7f89314603d636b36adeadbb70b56a.tar.gz
gcc-ca06cfe69f7f89314603d636b36adeadbb70b56a.tar.bz2
re PR c++/10202 ([IA64] ICE in int_mode_for_mode, at stor-layout.c)
PR c++/10202 * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P not COMPLETE_TYPE_P for re-invoking layout_decl. * g++.dg/expr/incomplete1.C: New. From-SVN: r65484
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index caf35cd..ad8993d 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -6712,7 +6712,8 @@ expand_expr (exp, target, tmode, modifier)
case VAR_DECL:
/* If a static var's type was incomplete when the decl was written,
but the type is complete now, lay out the decl now. */
- if (DECL_SIZE (exp) == 0 && COMPLETE_TYPE_P (TREE_TYPE (exp))
+ if (DECL_SIZE (exp) == 0
+ && COMPLETE_OR_UNBOUND_ARRAY_TYPE_P (TREE_TYPE (exp))
&& (TREE_STATIC (exp) || DECL_EXTERNAL (exp)))
layout_decl (exp, 0);