On Fri, Dec 18, 2015 at 10:40:40PM +0300, Yury Gribov wrote: > So it seems most people generally agree that self-comparisons (cmp(x,x) == > 0) are useless and don't need to be checked or fixed. What about ensuring > symmetry i.e. that cmp(x, y) == -cmp(y, x) forall x, y? One of the bugs > (pair_cmp in fortran/interface.c) is exactly about this.
Ensuring symmetry for x != y is of course very much desirable. So, if you could change your qsort interposer so that it for each comparison x != y calls both cmp (x, y) and cmp (y, x) and asserts that int r = cmp (x, y); int ir = cmp (y, x); if (r > 0) assert (ir < 0); else if (r < 0) assert (ir > 0); else assert (ir == 0); it would be greatly appreciated. Note, the standard only talks about < 0, 0 and > 0, so it is fine if cmp (x, y) returns 231 and cmp (y, x) returns -142. Jakub