From f2420d0b9230d2376c12380ce402f212be8714d8 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 12 Mar 1996 09:51:15 -0800 Subject: [PATCH] (expand_expr, case COMPONENT_REF): For unaligned object in an aligned union, delete check for EXPAND_SUM. From-SVN: r11519 --- gcc/expr.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/expr.c b/gcc/expr.c index 1765d69..33bfb6a 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -5334,11 +5334,12 @@ expand_expr (exp, target, tmode, modifier) an integer-mode (e.g., SImode) object. Handle this case by doing the extract into an object as wide as the field (which we know to be the width of a basic mode), then - storing into memory, and changing the mode to BLKmode. */ + storing into memory, and changing the mode to BLKmode. + If we ultimately want the address (EXPAND_CONST_ADDRESS or + EXPAND_INITIALIZER), then we must not copy to a temporary. */ if (mode1 == VOIDmode || GET_CODE (op0) == REG || GET_CODE (op0) == SUBREG || (modifier != EXPAND_CONST_ADDRESS - && modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER && ((mode1 != BLKmode && ! direct_load[(int) mode1]) /* If the field isn't aligned enough to fetch as a memref, -- 2.7.4