re PR regression/54084 (Bunch of fails for x86)
authorSteven Bosscher <steven@gcc.gnu.org>
Thu, 26 Jul 2012 13:21:21 +0000 (13:21 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Thu, 26 Jul 2012 13:21:21 +0000 (13:21 +0000)
PR regression/54084
* sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
pointer difference check.

From-SVN: r189891

gcc/ChangeLog
gcc/sel-sched-ir.c

index 6f75076377b3b18b170d4eac1c763da1cedd5ca6..ec73ade3437520a9ba96b90e2ff585c1717c7059 100644 (file)
@@ -1,3 +1,9 @@
+2012-07-26  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR regression/54084
+       * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
+       pointer difference check.
+
 2012-07-26  Bill Schmidt  <wschmidt@linux.ibm.com>
 
        * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
index 4781f059a173b79339d0f8d4b0392a0ba321a3a3..2dfecf5e45bd77dab457d85b01d0f92c2d605544 100644 (file)
@@ -954,7 +954,13 @@ return_regset_to_pool (regset rs)
 static int
 cmp_v_in_regset_pool (const void *x, const void *xx)
 {
-  return *((const regset *) x) - *((const regset *) xx);
+  uintptr_t r1 = (uintptr_t) *((const regset *) x);
+  uintptr_t r2 = (uintptr_t) *((const regset *) xx);
+  if (r1 > r2)
+    return 1;
+  else if (r1 < r2)
+    return -1;
+  gcc_unreachable ();
 }
 #endif