Warning for different pointer signedness

Gabriel Dos Reis gdr@integrable-solutions.net
Mon Dec 20 21:23:00 GMT 2004


Paul Schlie <schlie@comcast.net> writes:

| > From: Andrew Pinski <pinskia@physics.uc.edu>
| > Wrong, wrong, wrong, the change only moved a warning from -pedantic
| > to always on, in fact some compilers reject the code as it is invalid c.
| > 
| > -- Pinski
| 
| Which seems odd given (signed xxx *) and (unsigned xxx *) will always be
| guaranteed to be pointers to the exact same size and aligned storage units;

Pointers-to-object comparaison make sense (from the relevant standards
point of view) only if they

  (i)   point into the same object; or
  (ii)  are (or one of them is) one-past-the-end of the same object; or
  (iii) are (or one of them is) null.

You then realize that if the pointers are not of the same type or cannot be
implicitly converted to each other, then the comparison become
invalid.

-- Gaby



More information about the Gcc mailing list