From a5efcd6370a04e0fe8b7e64a36fd80f2cf22aef3 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 27 Jul 1999 10:23:05 +0000 Subject: [PATCH] expr.c (expand_expr, [...]): Get the mode from the tree for op1, not the rtl. * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the tree for op1, not the rtl. From-SVN: r28292 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3046572..3d5b4d7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Jul 27 03:15:33 1999 Jason Merrill + + * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the + tree for op1, not the rtl. + Tue Jul 27 00:18:34 1999 Richard Henderson * m88k.c (m88k_builtin_saveregs): Break out the constructor code diff --git a/gcc/expr.c b/gcc/expr.c index e22c1df..e240961 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4018,7 +4018,9 @@ store_constructor (exp, target, cleared) int cleared; { tree type = TREE_TYPE (exp); +#ifdef WORD_REGISTER_OPERATIONS rtx exp_size = expr_size (exp); +#endif /* We know our target cannot conflict, since safe_from_p has been called. */ #if 0 @@ -6955,7 +6957,7 @@ expand_expr (exp, target, tmode, modifier) constant_part = immed_double_const (TREE_INT_CST_LOW (TREE_OPERAND (exp, 0)), (HOST_WIDE_INT) 0, - GET_MODE (op1)); + TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 1)))); op1 = plus_constant (op1, INTVAL (constant_part)); if (modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER) op1 = force_operand (op1, target); -- 2.7.4