This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unstable build/host qsorts causing differing generated target code


Hi,

On Fri, 12 Jan 2018, Joseph Myers wrote:

> On Fri, 12 Jan 2018, Alexander Monakov wrote:
> 
> > No. The qsort_chk effort was limited to catching instances where comparators
> > are invalid, i.e. lack anti-commutativity (may indicate A < B < A) or
> > transitivity property (may indicate A < B < C < A). Fixing them doesn't
> > imply making corresponding qsort invocations stable.
> 
> Incidentally, does it detect being invalid because of comparing A != A?  
> (I don't know if qsort implementations ever do compare an element to 
> itself, but I did once notice in a patch review that a comparator could 
> have compared an element unequal to itself).

Many years ago I ran into a qsort implementation (some Sun one? too long 
ago) where indeed qsort was calling cmp(a,a).  I ran into this case only 
because one of the cmp() implementations didn't return 0 then, and qsort 
was Very Surprised by that :)


Ciao,
Michael.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]