aboutsummaryrefslogtreecommitdiff
path: root/gcc/sel-sched-ir.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2012-07-26 13:21:21 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2012-07-26 13:21:21 +0000
commit461f11f37793bb5008041b607ebbaa052f46ee01 (patch)
tree3e54749ca77a5bf2e498c7c29e1f4e5e0088296c /gcc/sel-sched-ir.c
parent1d18a4e8e9482f9dd66127c605fc6dfd47f6f4a2 (diff)
PR regression/54084
* sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix pointer difference check. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@189891 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sel-sched-ir.c')
-rw-r--r--gcc/sel-sched-ir.c8
1 files changed, 7 insertions, 1 deletions
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