From: Richard Stallman Date: Fri, 8 Oct 1993 04:58:24 +0000 (+0000) Subject: (expand_expr, case VAR_DECL): If decl wasn't laid out, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2dca20cd247a5502fc1fe2f0d1e63a29c3b92ae3;p=gcc.git (expand_expr, case VAR_DECL): If decl wasn't laid out, lay it out now, and fix the rtl's mode. From-SVN: r5671 --- diff --git a/gcc/expr.c b/gcc/expr.c index 5711d0cb342..0d013250464 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -3681,8 +3681,19 @@ expand_expr (exp, target, tmode, modifier) return CONST0_RTX (mode); } - case FUNCTION_DECL: 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 && TYPE_SIZE (TREE_TYPE (exp)) != 0 + && (TREE_STATIC (exp) || DECL_EXTERNAL (exp))) + { + push_obstacks_nochange (); + end_temporary_allocation (); + layout_decl (exp, 0); + PUT_MODE (DECL_RTL (exp), DECL_MODE (exp)); + pop_obstacks (); + } + case FUNCTION_DECL: case RESULT_DECL: if (DECL_RTL (exp) == 0) abort ();