From: Jim Wilson Date: Tue, 12 Mar 1996 17:51:15 +0000 (-0800) Subject: (expand_expr, case COMPONENT_REF): For unaligned object in X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f2420d0b9230d2376c12380ce402f212be8714d8;p=gcc.git (expand_expr, case COMPONENT_REF): For unaligned object in an aligned union, delete check for EXPAND_SUM. From-SVN: r11519 --- diff --git a/gcc/expr.c b/gcc/expr.c index 1765d6906ee..33bfb6acb7d 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,