This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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!).
> 
> Indeed!
> 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 
__int128.

__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
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]