On 08/03/2010 05:15 PM, Massimiliano Cialdi wrote: > Il giorno mar, 03/08/2010 alle 17.03 +0100, Andrew Haley ha scritto: > >> I don't think it is. gcc uses ssize_t (or, to be precise, a signed >> integer type based on sizetype) internally when constructing the size >> of an array. Given that array offsets can be negative or positive. >> this seems reasonable enough. > I get the same warning also if I cast to size_t: > > size_t p = (size_t)&(((big_dummy_t*)0)->singledata); > > Is reasonable to think that that offset could be negative, but I obtain > that warning also if I write: > > dummy_t *p; > p = &(((big_dummy_t*)0)->singledata); That's right: gcc uses ssize_t internally. > there is no way to "force" gcc to use 32bit integer? Not with the ABI you're using, no. gcc doesn't decide how big sizetype is. Andrew.