aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-02-02 20:37:29 -0800
committerRichard Henderson <rth@gcc.gnu.org>2004-02-02 20:37:29 -0800
commitb0dccb002204bff9f017d83584f3a516e703825e (patch)
tree78d3b6b9d689604f8173226d290f76aadab890d4 /gcc/expr.c
parent06a81b60c25f9fdd1da702cc1914187f407d8219 (diff)
downloadgcc-b0dccb002204bff9f017d83584f3a516e703825e.zip
gcc-b0dccb002204bff9f017d83584f3a516e703825e.tar.gz
gcc-b0dccb002204bff9f017d83584f3a516e703825e.tar.bz2
re PR target/13789 ([tree-ssa] ICE on _builtin_expect_addr)
PR target/13789 * expr.c (store_expr): Use force_operand before emit_move_insn. From-SVN: r77158
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 8bf0732..ba27b04 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4334,7 +4334,11 @@ store_expr (tree exp, rtx target, int want_value)
(want_value & 2
? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
else
- emit_move_insn (target, temp);
+ {
+ temp = force_operand (temp, target);
+ if (temp != target)
+ emit_move_insn (target, temp);
+ }
}
/* If we don't want a value, return NULL_RTX. */