On Tue, Oct 04, 2016 at 09:42:21PM +0000, Joseph Myers wrote:
> On Tue, 4 Oct 2016, Michael Meissner wrote:
> 
> > It also changes __ibm128/__float128, and only registers the keywords if the
> > long double type is not IBM extended double or IEEE 128-bit floating point
> > respectively.  If the long double type matches one of those types, instead 
> > it
> > will issue a #define {__ibm128,__float128} long double, and the user will
> > always pick up the long double type.
> 
> _Float128, when it exists, is always a distinct type from long double even 
> if they are ABI-compatible.  So if they are ABI-compatible, you would have 
> __float128 the same as long double but different from _Float128, which 
> seems confusing - are you doing it that way because of the lack of 
> _Float128 in C++ means a simple define to _Float128 could only be used for 
> C?

Right now, if -mfloat128 is used, __float128 and _Float128 use the same type.
If -mfloat128 is not used (but -mfloat128-type is), it creates a unique type.
At this point, I was mainly worrying about __ibm128 being the same as long
double.  I am open to suggestions on what __float128 should be somewhere down
the road (gcc 8 or 9 time frame) when the switch becomes an option.

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797

Reply via email to