aboutsummaryrefslogtreecommitdiff
path: root/gcc/cppexp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cppexp.c')
-rw-r--r--gcc/cppexp.c6
1 files changed, 4 insertions, 2 deletions
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;