On Wed, Aug 10, 2022 at 04:55:42PM -0300, Tulio Magno Quites Machado Filho 
wrote:
> Michael Meissner via Gcc <gcc@gcc.gnu.org> writes:
> > Because long double mangles the same as either __float128 or __ibm128, you
> > cannot write programs like:
> >
> >     double convert (__ibm128    x) { return x; }
> >     double convert (__float128  x) { return x; }
> >     double convert (long double x) { return x; }
> >
> > You would have to write on a system with long double being IBM 128-bit:
> >
> >     double convert (__float128  x) { return x; }
> >     double convert (long double x) { return x; }
> >
> > or on a system with long double being IEEE 128-bit:
> >
> >     double convert (__ibm128    x) { return x; }
> >     double convert (long double x) { return x; }
> 
> Does that mean, when long double is IEEE 128-bit, the compiler won't support
> _Float128/__float128 ?

You can write
        double convert (__ibm128  x) { return x; }
        double convert (__ieee128 x) { return x; }
as well.  "__ieee128" and "long double" are the same type then (and the
same as _Float128 and __float128 as well).


Segher

Reply via email to