aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-11-16 12:11:13 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-11-16 07:11:13 -0500
commita8ca89dca83767049abf111dd2c659356a4c5880 (patch)
tree918b87855cdc8c8e34de2cfd27215133dd5ff6c0 /gcc/expr.c
parent3b2d1507174574ed16db4ba0ea3c97736f3cc708 (diff)
downloadgcc-a8ca89dca83767049abf111dd2c659356a4c5880.zip
gcc-a8ca89dca83767049abf111dd2c659356a4c5880.tar.gz
gcc-a8ca89dca83767049abf111dd2c659356a4c5880.tar.bz2
expr.c (expand_expr, [...]): Only copy for misaligned if BLKmode.
* expr.c (expand_expr, case ADDR_EXPR): Only copy for misaligned if BLKmode. From-SVN: r47086
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 bce6ba0..afc43cc 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8652,7 +8652,8 @@ expand_expr (exp, target, tmode, modifier)
/* If OP0 is not aligned as least as much as the type requires,
we need to make a temporary, copy OP0 to it, and take the
address of the temporary. */
- if (expr_align (TREE_OPERAND (exp, 0)) > MEM_ALIGN (op0))
+ if (GET_MODE (op0) == BLKmode
+ && expr_align (TREE_OPERAND (exp, 0)) > MEM_ALIGN (op0))
{
tree inner_type = TREE_TYPE (TREE_OPERAND (exp, 0));
rtx new