aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-10-15 08:39:59 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-10-15 08:39:59 -0400
commit459a2653258e24af006f1d66015307cf73c67f74 (patch)
tree6d55d41ea45a6f11c7e1715d128d76159a08df99 /gcc/fold-const.c
parent76d4178822494f1aa5eeecf33f77a4f6873f1ce8 (diff)
downloadgcc-459a2653258e24af006f1d66015307cf73c67f74.zip
gcc-459a2653258e24af006f1d66015307cf73c67f74.tar.gz
gcc-459a2653258e24af006f1d66015307cf73c67f74.tar.bz2
(fold): Add missing test in case when we distribute a NOP_EXPR into a
COND_EXPR and try to pull it back out again. From-SVN: r2476
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 35bd938..5710556 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -3019,7 +3019,9 @@ fold (expr)
|| code == NON_LVALUE_EXPR)
&& TREE_CODE (t) == COND_EXPR
&& TREE_CODE (TREE_OPERAND (t, 1)) == code
- && TREE_CODE (TREE_OPERAND (t, 2)) == code)
+ && TREE_CODE (TREE_OPERAND (t, 2)) == code
+ && (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (t, 1), 0))
+ == TREE_TYPE (TREE_OPERAND (TREE_OPERAND (t, 2), 0))))
t = build1 (code, type,
build (COND_EXPR,
TREE_TYPE (TREE_OPERAND (TREE_OPERAND (t, 1), 0)),