From 62acb9781ff34c6da24a07e35c76927c86a20250 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Thu, 28 Jul 1994 19:48:33 -0400 Subject: [PATCH] (expand_expr, case CONJ_EXPR): Use correct mode for parts of a complex expression. From-SVN: r7815 --- gcc/expr.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gcc/expr.c b/gcc/expr.c index 62eb5b830fb..b6c4e554ace 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6058,6 +6058,7 @@ expand_expr (exp, target, tmode, modifier) case CONJ_EXPR: { + enum machine_mode partmode = TYPE_MODE (TREE_TYPE (TREE_TYPE (exp))); rtx imag_t; rtx insns; @@ -6069,11 +6070,12 @@ expand_expr (exp, target, tmode, modifier) start_sequence (); /* Store the realpart and the negated imagpart to target. */ - emit_move_insn (gen_realpart (mode, target), gen_realpart (mode, op0)); + emit_move_insn (gen_realpart (partmode, target), + gen_realpart (partmode, op0)); - imag_t = gen_imagpart (mode, target); - temp = expand_unop (mode, neg_optab, - gen_imagpart (mode, op0), imag_t, 0); + imag_t = gen_imagpart (partmode, target); + temp = expand_unop (partmode, neg_optab, + gen_imagpart (partmode, op0), imag_t, 0); if (temp != imag_t) emit_move_insn (imag_t, temp); -- 2.30.2