From: Jan Hubicka Date: Sat, 10 Jan 2004 20:50:53 +0000 (+0100) Subject: * expr.c (expand_expr_real): More curefully expand union casts. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cf7cb67e9770fde9bfb8c899882b7395f1fe17b0;p=gcc.git * expr.c (expand_expr_real): More curefully expand union casts. From-SVN: r75649 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c6c92b87bf0..3fe675a8d60 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-01-10 Jan Hubicka + + * expr.c (expand_expr_real): More curefully expand union casts. + 2004-01-10 Kazu Hirata * config/m32r/m32r.md (flush_icache): Use 1 for diff --git a/gcc/expr.c b/gcc/expr.c index 6442b3d308c..73fb9655c1c 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -7509,7 +7509,12 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode, } if (target == 0) - target = assign_temp (type, 0, 1, 1); + { + if (TYPE_MODE (type) != BLKmode) + target = gen_reg_rtx (TYPE_MODE (type)); + else + target = assign_temp (type, 0, 1, 1); + } if (GET_CODE (target) == MEM) /* Store data into beginning of memory target. */