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

Matthew Dillon dillon at apollo.backplane.com
Mon Mar 21 14:10:58 PST 2005


:    The poin is, guys, that sizeof(some_ridiculously_large_structure_or_array_
:    which_is_as_large_as_the_processes_entire_address_space) is just plain
:    ridiculous, and sizeof() should not have been made to return size_t
:    for something so silly.  They could have added a usizeof() for the one
:    in a million chance that someone actually needed something like that,
:    but no... the idiots on the standard committee seem to believe that
:    sizeof() is only EVER used in calls to read() or write(), verses, say,
:    in generic exprssions that might, say, calculate an array index.
:
:    for (i = 0; i < sizeof(ary)/sizeof(ary[0]); ++i) ...   now, should i
:    be unsigned here, or an int?  it should be an int, plain and simple,
:    for 99.99999% of the programs ever written.
:
:    For the same reason, a TLS segment that is the size of the entire
:    address space (or even 1/2 the entire address space), is also ridiculous.
:
:					-Matt

   Sorry, I'm going down a rabbit hole here.  What I REALLY meant to say
   was that it should be signed... i.e. an int or a long, rather then 
   unsigned.  In the case of sizeof() I have to agree with chris... it
   should be an 'int' if it is small enough to fit, and a 'long' otherwise,
   and overflow values should not be allowed (generate a compile time error)
   or there should be separate keyword, like usizeof(), which returns the
   value as unsigned.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Commits mailing list