diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2012-07-26 13:21:21 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2012-07-26 13:21:21 +0000 |
commit | 461f11f37793bb5008041b607ebbaa052f46ee01 (patch) | |
tree | 3e54749ca77a5bf2e498c7c29e1f4e5e0088296c /gcc/sel-sched-ir.c | |
parent | 1d18a4e8e9482f9dd66127c605fc6dfd47f6f4a2 (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.c | 8 |
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 |