diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/expr.c | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c6c92b87..3fe675a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2004-01-10 Jan Hubicka <jh@suse.cz> + + * expr.c (expand_expr_real): More curefully expand union casts. + 2004-01-10 Kazu Hirata <kazu@cs.umass.edu> * config/m32r/m32r.md (flush_icache): Use 1 for @@ -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. */ |