From 4c7a0be934b1cf59a0bfff3a41ced8f901cedc18 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Mon, 1 May 1995 16:26:28 -0700 Subject: [PATCH] (expand_expr, case SAVE_EXPR): Handle the case where mode is VOIDmode. From-SVN: r9556 --- gcc/expr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/expr.c b/gcc/expr.c index e940ccb3a9c..9ebbda9eda4 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4310,6 +4310,8 @@ expand_expr (exp, target, tmode, modifier) = assign_stack_temp (mode, int_size_in_bytes (type), 0); MEM_IN_STRUCT_P (temp) = AGGREGATE_TYPE_P (type); } + else if (mode == VOIDmode) + temp = const0_rtx; else temp = gen_reg_rtx (promote_mode (type, mode, &unsignedp, 0)); @@ -4331,7 +4333,10 @@ expand_expr (exp, target, tmode, modifier) SUBREG_PROMOTED_UNSIGNED_P (temp) = unsignedp; } - store_expr (TREE_OPERAND (exp, 0), temp, 0); + if (temp == const0_rtx) + expand_expr (TREE_OPERAND (exp, 0), const0_rtx, VOIDmode, 0); + else + store_expr (TREE_OPERAND (exp, 0), temp, 0); } /* If the mode of SAVE_EXPR_RTL does not match that of the expression, it -- 2.30.2