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
+2003-04-11 Richard Henderson <rth@redhat.com>
+
+ PR c++/10202
+ * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
+ not COMPLETE_TYPE_P for re-invoking layout_decl.
+
2003-04-11 Simon Law <sfllaw@engmail.uwaterloo.ca>
* doc/bugreport.texi: Fix paragraph breaking between sections
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);
--- /dev/null
+// PR 10202
+// { dg-do compile }
+// { dg-options -O0 }
+
+extern struct _smtp_account smtp_accounts[];
+typedef struct _smtp_account {
+ int flags;
+} Smtp_Account;
+
+void get_smtp_host_info ()
+{
+ if (smtp_accounts[0].flags & 0x01)
+ get_smtp_host_info();
+}