diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-10-15 08:39:59 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-10-15 08:39:59 -0400 |
commit | 459a2653258e24af006f1d66015307cf73c67f74 (patch) | |
tree | 6d55d41ea45a6f11c7e1715d128d76159a08df99 /gcc/fold-const.c | |
parent | 76d4178822494f1aa5eeecf33f77a4f6873f1ce8 (diff) | |
download | gcc-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.c | 4 |
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)), |