2012/12/21 Paolo Carlini <paolo.carl...@oracle.com>: > Hi, > > > On 12/21/2012 10:16 AM, Kai Tietz wrote: >> >> Well, I thought it is always present for gcc due gstdint.h header, > > As far as I know, that project isn't finished yet, there are still targets > which neither provide the header, neither GCC synthetizes it. See also > "dg-require-effective-target stdint_types". > >> but well, using ptrdiff_t here instead would be ok too IMHO, and later is >> compatible to none C99-systems. Ok, with that change (and remove of later >> cast to ptrdiff_t for it)? > > Are we 100% sure that, besides the targets we know well and love, elsewhere > long is always == ptrdiff_t? > > Paolo.
well, issue isn't that 'long' is always 'ptrdiff_t'. As this is indeed the wrong assumption here. As we treat here pointers later-one as pointer-diff, it doesn't make any difference, even if pointer-size might exceed 'ptrdiff_t' (well size_t would have here the same issue, and all in all we lack a longptr_t type-definition in standard), then we still don't change behavior AFAICS. Kai