On Tue, Jun 05, 2018 at 03:01:23PM +0200, Jason Merrill wrote:
> > Now that we only have two types, you can't have explicit overloading of the
> > same type.  You can have templates, because only one version of the 
> > template is
> > created for the two types.
> 
> I thought that the two long double types would be __ibm128 and
> __ieee128, and __float128 would be a third type, to satisfy the
> _Float128 requirement that it be distinct from long double.  Or are
> you thinking that _Float128 will be different from __float128?

Why not?  I think __float128 is most useful just as an alias to whatever
type provides the IEEE quad semantics, it is a distinct type on x86_64/i686
just because no other C++ type on the target is IEEE quad, e.g. on hppa-hpux
I think __float128 is just defined to long double as macro.
And, even on x86_64/i686, __float80 mangles the same as long double, both
mangle as "e", they aren't considered distinct types.
If we need the C separate _FloatNN types in C++, they can mangle the way we
(and others) agree on.  Would _Float64 be distinct from double and thus
mangle differently from "d"?

        Jakub

Reply via email to