https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120304
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #1) > In C++ the _FloatN types have special rules that prevent some implicit > conversions, which would break existing code that uses __float128 and > expects it to have the usual implicit conversions e.g. to double. e.g. converting __float128 to double always works, but converting _Float128 to double gives a diagnostic: warning: ISO C++ does not allow converting to ‘double’ from ‘_Float128’ with greater conversion rank [-Wnarrowing] So aliasing long double seems preferable.