On Mon, 19 Mar 2012, Eric Botcazou wrote:
> > I am lost here. Which targets (with ptr_mode size != Pmode size !=
> > sizetype size) are you referring to ?
> Targets for which sizetype mode isn't necessarily equal to ptr_mode like VMS.
> Up to GCC 4.6, sizetype was Pmode in Ada, but ptr_mode in C.
It does make sense to give the target control over the mode used for
sizetype. Of course a global change of the default (for example to
use Pmode as Ada did) will require testing each affected target,
so I think it makes sense to keep the default as-is.
Btw, we still have the issue on which _precision_ we should use for
sizetype -- if we expect modulo-semantics of arithmetic using it
(thus basically sign-less arithmetic) then the precision has to match
the expectation the C frontend (and other frontends) assume how pointer
offsets are handled. Currently the C frontend gets this not correct
which means negative offsets will be not correctly handled.
Similar issues arise from the mode/precision chosen for the bitsize
types. We choose a way to wide precision for them, so the
modulo-semantics assumption does not usually hold for bitsize