diff options
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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. */ |