aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/simplify-rtx.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr20412.c20
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 18efe59..0cd964f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR rtl-opt/20412
+ * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
+ correct mode.
+
2005-03-10 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_signbit): Extend to handle floating
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 8a1b9bb..2f7ae25 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -2882,7 +2882,7 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode,
/* If op0 is a comparison, extract the comparison arguments form it. */
if (code == NE)
{
- if (GET_MODE (op0) == cmp_mode)
+ if (GET_MODE (op0) == mode)
return simplify_rtx (op0);
else
return simplify_gen_relational (GET_CODE (op0), mode, VOIDmode,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bee3e64..bb8b8fe 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-10 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR rtl-opt/20412
+ * gcc.c-torture/compile/pr20412.c: New test.
+
2005-03-10 Roger Sayle <roger@eyesopen.com>
* gcc.dg/builtins-32.c: Add new run-time tests for long double.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20412.c b/gcc/testsuite/gcc.c-torture/compile/pr20412.c
new file mode 100644
index 0000000..a165a92
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr20412.c
@@ -0,0 +1,20 @@
+int
+foo(void)
+{
+ int a,b,g;
+ int i,len;
+ int stop;
+
+ len = 10;
+ stop = 0;
+ for (i=0; i<len; i++)
+ {
+ a = bar1() ? 0 : 1;
+ b = bar2() ? 0 : 1;
+ g = bar3() ? 0 : 1;
+
+ if (stop = ((a+b) % 2 != g)) break;
+ }
+
+ return stop;
+}