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