cvs commit: src/lib/libc/sys tls.2

Chris Pressey cpressey at catseye.mine.nu
Mon Mar 21 12:31:03 PST 2005


On Mon, 21 Mar 2005 21:14:14 +0100
Joerg Sonnenberger <joerg at 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.
> 
> Joerg

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?

-Chris





More information about the Commits mailing list