From d38933a0032bf9b04639575267bcb25e8c6a4463 Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Thu, 26 Jul 2012 13:21:21 +0000 Subject: [PATCH] re PR regression/54084 (Bunch of fails for x86) PR regression/54084 * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix pointer difference check. From-SVN: r189891 --- gcc/ChangeLog | 6 ++++++ gcc/sel-sched-ir.c | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6f75076377b..ec73ade3437 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-07-26 Steven Bosscher + + PR regression/54084 + * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix + pointer difference check. + 2012-07-26 Bill Schmidt * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove. diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 4781f059a17..2dfecf5e45b 100644 --- a/gcc/sel-sched-ir.c +++ b/gcc/sel-sched-ir.c @@ -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