This is the mail archive of the
mailing list for the libstdc++ project.
Re: [v3] libstdc++/50441
On Sun, 18 Sep 2011, Marc Glisse wrote:
> On Sun, 18 Sep 2011, Paolo Carlini wrote:
> > On 09/18/2011 09:03 AM, Marc Glisse wrote:
> > > the testsuite uses #ifdef __SIZEOF_INT128__ to test for the availability
> > > of a 128 bit integer type. I haven't seen a similar define for float128,
> > Thanks. For now I went for a configure test, consistently for int and float,
> > which also allows to check whether the type is the same as an existing one
> > (otherwise we risk bad errors due to duplicate specializations, well
> > possible right now for __float128!).
> The documentation is not clear on whether __int128 and __float128 may be the
> same types as say long long and long double, or they are different types even
> if they have the same size (the doc was written for C, where it doesn't matter
> as much).
__int128 and unsigned __int128 are currently separate types, just like
long and long long are always distinct. I'm not sure you should rely on
them being distinct on any hypothetical future target where long long is
128-bit; if we added __int64 I'm not sure having it a distinct type would
be the most useful implementation.
__int128_t and __uint128_t are legacy typedefs for __int128 and unsigned
__float128 and __float80 are typedefs. It appears (without testing) that
IA64 __float80 is always a distinct type but otherwise those names will be
typedefs for long double if they have the same representation and
alignment as long double.
Joseph S. Myers