aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-04-10 00:11:32 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-04-10 00:11:32 -0700
commitc2e9dc85ff119ec9f9a9af764bf76a74218717fb (patch)
tree2146c32c7a4d2b41d5bf7263a144ff59d6b50db5 /gcc/expr.c
parentbc8e8e97b4ff381c66c3346682ad19f81d613685 (diff)
downloadgcc-c2e9dc85ff119ec9f9a9af764bf76a74218717fb.zip
gcc-c2e9dc85ff119ec9f9a9af764bf76a74218717fb.tar.gz
gcc-c2e9dc85ff119ec9f9a9af764bf76a74218717fb.tar.bz2
expr.c (expand_expr): Don't force into registers if EXPAND_INITIALIZER.
* expr.c (expand_expr) [INTEGER_CST]: Don't force into registers if EXPAND_INITIALIZER. From-SVN: r52118
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 4871c4b..3e0add2 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -6326,7 +6326,8 @@ expand_expr (exp, target, tmode, modifier)
simplified by validate_replace_rtx during virtual register
instantiation, which can result in unrecognizable insns.
Avoid this by forcing all overflows into registers. */
- if (TREE_CONSTANT_OVERFLOW (exp))
+ if (TREE_CONSTANT_OVERFLOW (exp)
+ && modifier != EXPAND_INITIALIZER)
temp = force_reg (mode, temp);
return temp;