From f46e5baad61a5604120e22c7dfa3b77180f2e7ef Mon Sep 17 00:00:00 2001
From: Jeff Law <law@redhat.com>
Date: Thu, 19 Feb 2004 09:57:52 -0700
Subject: [PATCH] fold-const.c (invert_truthvalue): Do not call
 invert_tree_comparison for unordered comparison codes.

        * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
        for unordered comparison codes.

From-SVN: r78103
---
 gcc/ChangeLog    | 5 +++++
 gcc/fold-const.c | 8 ++++++++
 2 files changed, 13 insertions(+)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e1808bcb317..f9fa2d3dd2c7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-19  Jeff Law  <law@redhat.com>
+ 
+	* fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
+	for unordered comparison codes.
+
 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
 
 	* reload1.c (reload): Correct comment.
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index f9b7808cbe60..5b39098d0db8 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));
-- 
GitLab