aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-04-08 16:32:01 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-04-08 16:32:01 -0400
commite9cdf6e48c50fc5a2ac262d1626bdcab954bd2db (patch)
tree4f81373e39d15ea5ae360e864135e67f98e3c916 /gcc
parent6cb64c6a04fcc6c9203dbf3f409dc9cae89a74af (diff)
downloadgcc-e9cdf6e48c50fc5a2ac262d1626bdcab954bd2db.zip
gcc-e9cdf6e48c50fc5a2ac262d1626bdcab954bd2db.tar.gz
gcc-e9cdf6e48c50fc5a2ac262d1626bdcab954bd2db.tar.bz2
(expand_increment): Handle case where INCREMENTED has a non-trivial
conversion. From-SVN: r9337
Diffstat (limited to 'gcc')
-rw-r--r--gcc/expr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index d65445a..14ca366 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8494,6 +8494,14 @@ expand_increment (exp, post)
TREE_TYPE (exp),
incremented,
TREE_OPERAND (exp, 1));
+
+ while (TREE_CODE (incremented) == NOP_EXPR
+ || TREE_CODE (incremented) == CONVERT_EXPR)
+ {
+ newexp = convert (TREE_TYPE (incremented), newexp);
+ incremented = TREE_OPERAND (incremented, 0);
+ }
+
temp = expand_assignment (incremented, newexp, ! post, 0);
return post ? op0 : temp;
}