diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e1808bcb31..f9fa2d3dd2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-02-19 Jeff Law + + * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison + for unordered comparison codes. + 2004-02-19 Ian Lance Taylor * reload1.c (reload): Correct comment. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index f9b7808cbe6..5b39098d0db 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -2636,6 +2636,14 @@ invert_truthvalue (tree arg) && code != NE_EXPR && code != EQ_EXPR) return build1 (TRUTH_NOT_EXPR, type, arg); + else if (code == UNORDERED_EXPR + || code == ORDERED_EXPR + || code == UNEQ_EXPR + || code == UNLT_EXPR + || code == UNLE_EXPR + || code == UNGT_EXPR + || code == UNGE_EXPR) + return build1 (TRUTH_NOT_EXPR, type, arg); else return build (invert_tree_comparison (code), type, TREE_OPERAND (arg, 0), TREE_OPERAND (arg, 1));