DragonFly commits List (threaded) for 2005-03
Re: cvs commit: src/lib/libc/sys tls.2
On Mon, 21 Mar 2005 21:14:14 +0100
Joerg Sonnenberger <joerg@xxxxxxxxxxxxxxxxx> wrote:
> On Mon, Mar 21, 2005 at 11:52:49AM -0800, Chris Pressey wrote:
> > I wouldn't say it should return an int, though: IMO sizeof(x) ought
> > to be treated just like any other numeric constant in C - that is,
> > interpreted as signed or unsigned as the situation dictates. Why
> > they introduced this gratuitous unorthogonality, I have no idea.
> > Well, maybe that's not strictly true... I _can_ guess. Probably
> > "sizeof always yields a positive number so we should force its type
> > to be unsigned." But that makes exactly as much sense as "4 always
> > yields a positive number so we should force its type to be
> > unsigned," which is stupid.
> Because sizeof(char[2 << 31]) and sizeof(char[2 << 30]) should have
> the same type.
That's what coercion is for. 4294967296 and 2147483648 have the same
type when used in the same expression, so why can't sizeof()s which
evaluate to those constants do the same?