This qsort comparator lacks anti-commutativity and can indicate
A < B < A if A and B have the same bitpos. Return 0 in that case.
* gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
---
gcc/gimple-ssa-store-merging.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/gimple-ssa-store-merging.c b/gcc/gimple-ssa-store-merging.c
index 64b8351..c99960b 100644
--- a/gcc/gimple-ssa-store-merging.c
+++ b/gcc/gimple-ssa-store-merging.c
@@ -516,12 +516,12 @@ sort_by_bitpos (const void *x, const void *y)
store_immediate_info *const *tmp = (store_immediate_info * const *) x;
store_immediate_info *const *tmp2 = (store_immediate_info * const *) y;
- if ((*tmp)->bitpos <= (*tmp2)->bitpos)
+ if ((*tmp)->bitpos < (*tmp2)->bitpos)
return -1;
else if ((*tmp)->bitpos > (*tmp2)->bitpos)
return 1;
-
- gcc_unreachable ();
+ else
+ return 0;
}
/* Sorting function for store_immediate_info objects.
--
1.8.3.1