https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99708

--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #6)
> Yes.  And it does not mean the type exist (or is usable), either.

Example?

> Do we?  The types should always exist!

Please tell that to our IBM colleagues working on clang. __float128 is not
supported for anything less than -mcpu=power9 which means that clang cannot be
ABI compatible with GCC when using libstdc++ headers on power8.

The current solution is to disable all the work I've done for the IEEE128
transition when compiled with clang. The ABI incompatibility will remain until
Clang supports those types properly *and* provides macros to check for the
types being supported. It would be nice if GCC and Clang agreed on those
macros.

> Other targets do not have __ieee128 or __ibm128.

But they have other target-specific types and they define __SIZEOF_xxx__ for
those types, e.g. __SIZEOF_FLOAT128__. There's a reason I used "xxx" because
I'm talking about "non-standard types that aren't available on all targets",
where __ieee128 and __ibm128 are examples for powerpc (and are the outliers
currently when compared to other targets).

Reply via email to