binutils-2.15 - work around for gcc optimization problem on sparc -sun-solaris2.7

Nick Clifton nickc@redhat.com
Wed Jul 14 13:58:00 GMT 2004


Hi Eric,

   [oops - pressed send by mistake.  here is the reply I meant to write...]


>>Maybe...  It involves arithmetic comparisons of pointers to separately
>>allocated objects, which is a bit dubious in the first place.

> Note that it doesn't compare pointers directly, but first performs a 
> substraction on pointers which is strictly specified by C99 6.5.6 §9: "When 
> two pointers are substracted, both shall point to elements of the same array 
> object, or one past the last element of the array object; the result is the 
> difference of the subscripts of the two array elements."

Which is OK if the two pointers a re both pointing to elements of the 
same array.  If however they are pointing to malloc()'ed structures for 
example then the semantics are not defined.  So the problem with 
elf_sort_symbol() was that it was comparing pointers to entities that 
were not part of a single array...

Cheers
   Nick




More information about the Gcc-bugs mailing list