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