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

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Masahide Kashiwagi from comment #0)
> Also no problem with clang++ 16.0.6.

That's because Clang doesn't support _Float64x or _Float64 at all.

Those names get defined as typedefs by libc:

# 214 "/usr/include/bits/floatn-common.h" 3 4
typedef float _Float32;
# 251 "/usr/include/bits/floatn-common.h" 3 4
typedef double _Float64;
# 268 "/usr/include/bits/floatn-common.h" 3 4
typedef double _Float32x;
# 285 "/usr/include/bits/floatn-common.h" 3 4
typedef long double _Float64x;

So when you use Clang, _Float64x is just another typedef for long double.

If you are happy to just use long double, then use long double. Don't try to
use extended floating point types that are not part of the C++ standard.

Reply via email to