aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-03-13 08:58:47 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1992-03-13 08:58:47 -0500
commitef9fe0da13b2d36da24e412ec6e3a609c9fc36fc (patch)
treebbb6f7c66e22569d6679ecddbe962b6fad72f9c3 /gcc
parent8df91b1fdb9140099a0a16dd0c256bd26e1d4a79 (diff)
downloadgcc-ef9fe0da13b2d36da24e412ec6e3a609c9fc36fc.zip
gcc-ef9fe0da13b2d36da24e412ec6e3a609c9fc36fc.tar.gz
gcc-ef9fe0da13b2d36da24e412ec6e3a609c9fc36fc.tar.bz2
*** empty log message ***
From-SVN: r462
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fold-const.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index f18ff01..5246a45 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -1624,6 +1624,10 @@ invert_truthvalue (arg)
invert_truthvalue (TREE_OPERAND (arg, 1)),
invert_truthvalue (TREE_OPERAND (arg, 2)));
+ case COMPOUND_EXPR:
+ return build (COMPOUND_EXPR, type, TREE_OPERAND (arg, 0),
+ invert_truthvalue (TREE_OPERAND (arg, 1)));
+
case NON_LVALUE_EXPR:
return invert_truthvalue (TREE_OPERAND (arg, 0));
@@ -3293,7 +3297,8 @@ fold (expr)
}
/* If what we want is other than LT or EQ, invert the result. */
- if (code == GE_EXPR || code == LE_EXPR || code == NE_EXPR)
+ if ((code == GE_EXPR || code == LE_EXPR || code == NE_EXPR)
+ && TREE_CODE (t) == INTEGER_CST)
TREE_INT_CST_LOW (t) ^= 1;
TREE_TYPE (t) = type;
return t;