aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cppexp.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10d1df8..835ae07 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 e5f464e..4fc833c 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;