From 79777b798cb818ea1ac419e357263158f7b72acd Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Tue, 15 Feb 1994 19:30:29 -0500 Subject: [PATCH] (expand_increment): Handle both BAD_SUBREG and POST. From-SVN: r6567 --- gcc/expr.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/expr.c b/gcc/expr.c index c4356ae17f9..ae1e5a46569 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -7951,7 +7951,15 @@ expand_increment (exp, post) SUBREG_REG (op0) = copy_to_reg (SUBREG_REG (op0)); else if (GET_CODE (op0) == SUBREG && GET_MODE_BITSIZE (GET_MODE (op0)) < BITS_PER_WORD) - bad_subreg = 1; + { + /* We cannot increment this SUBREG in place. If we are + post-incrementing, get a copy of the old value. Otherwise, + just mark that we cannot increment in place. */ + if (post) + op0 = copy_to_reg (op0); + else + bad_subreg = 1; + } op0_is_copy = ((GET_CODE (op0) == SUBREG || GET_CODE (op0) == REG) && temp != get_last_insn ()); -- 2.30.2