strict aliasing: how to swap pointers

Andrew Haley aph@redhat.com
Sat May 3 09:10:00 GMT 2008


Matthew Woehlke wrote:
> Andrew Haley wrote:
>> Consider an arch which has pointers to char (and void *) that are two
>> words
>> in size, and pointers to int that are one word in size.  On such an arch
>> your exchange() function won't work, which is one reason why you need
>> a macro
>> to do it in Standard C.
> 
> What platforms are there where sizeof(T*) != sizeof(void*) for some T?

I'm not sure: certainly nothing gcc supports, because gcc internally uses
Pmode for all pointers.  DEC-10 possibly, maybe others.  And of course, some
segmented architectures have pointers of different sizes.

Andrew.




More information about the Gcc-help mailing list