From a29114b3536caf57d274d29b20289a6df9d31239 Mon Sep 17 00:00:00 2001
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 7 Jun 2002 13:29:17 +0000
Subject: [PATCH]         * cppexp.c (num_equality_op): Use a temporary
 variable to work         around gcc 3.0.4 bug.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54339 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog | 5 +++++
 gcc/cppexp.c  | 6 ++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10d1df8aa1e2..835ae073e7e8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-07  Jason Merrill  <jason@redhat.com>
+
+	* cppexp.c (num_equality_op): Use a temporary variable to work
+	around gcc 3.0.4 bug.
+
 2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>
 
 	* diagnostic.c (diagnostic_build_prefix): Tidy.
diff --git a/gcc/cppexp.c b/gcc/cppexp.c
index e5f464eaa000..4fc833c23e4e 100644
--- a/gcc/cppexp.c
+++ b/gcc/cppexp.c
@@ -1128,9 +1128,11 @@ num_equality_op (pfile, lhs, rhs, op)
      cpp_num lhs, rhs;
      enum cpp_ttype op;
 {
-  lhs.low = num_eq (lhs, rhs);
+  /* Work around a 3.0.4 bug; see PR 6950.  */
+  bool eq = num_eq (lhs, rhs);
   if (op == CPP_NOT_EQ)
-    lhs.low = !lhs.low;
+    eq = !eq;
+  lhs.low = eq;
   lhs.high = 0;
   lhs.overflow = false;
   lhs.unsignedp = false;
-- 
GitLab