signed is undefined and has been since 1992 (in GCC)
Olivier Galibert
galibert@pobox.com
Tue Jun 28 14:52:00 GMT 2005
On Tue, Jun 28, 2005 at 03:39:38PM +0100, Dave Korn wrote:
> ----Original Message----
> >From: Olivier Galibert
> >Sent: 28 June 2005 15:25
>
> > In particular, a very large number of C and C++ programs are written
> > with the assumptions:
>
> This is a bad line of reasoning in general. There is a vast amount of bad
> software in the world, some blatantly buggy, some subtly-incorrect. To
> attempt to fix it all in the compiler rather than the source seems a bit
> bass-ackwards to me!
Welcome to the real world. Useful compilers are not an exercise in
theorical computing, especially for languages like C or C++.
> > - sizeof(int) == 4, sizeof(long long) == 8
> >
> > - sizeof(long) == sizeof(void *) == sizeof(void (*)())
> >
> > Break them and see your compiler rejected by pretty much everybody.
>
> And what about 64 bit architectures? Your assumptions are already widely
> invalid and only going to get more so.
They aren't. They have:
- sizeof(int) == 4, sizeof(long long) == 8
- sizeof(long) == sizeof(void *) == sizeof(void (*)()) == 8
and nobody in his right mind would seriously propose to change
sizeof(int) to 8 or sizeof(long long) to 16.
IA-64 may have an issue with sizeof(void (*)()) from what I've heard,
but they have been laughed out of the market.
OG.
More information about the Gcc
mailing list