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

            Bug ID: 113770
           Summary: _Float64x support on g++ 13.2.0
           Product: gcc
           Version: 13.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kashi at waseda dot jp
  Target Milestone: ---

I have noticed that the following simple program will not complie
with g++ 13.2.0 on ubuntu 23.04 .

#include <iostream>

int main()
{
        _Float64x a;

        std::cin >> a;
}

It compiles fine with long double and __float80.
Also no problem with clang++ 16.0.6.

I also noticed that with _Float64x, the numeric_limits<_Float64x> return 0,
as shown below.

#include <iostream>
#include <limits>

int main()
{
        std::cout << std::numeric_limits<_Float64x>::epsilon() << std::endl;
        std::cout << std::numeric_limits<_Float64x>::max() << std::endl;
        std::cout << std::numeric_limits<_Float64x>::min() << std::endl;
        std::cout << std::numeric_limits<_Float64x>::infinity() << std::endl;
}

This program returns 0:

0
0
0
0

With long double and __float80, the program returns correct values:

1.0842e-19
1.18973e+4932
3.3621e-4932
inf

It seems to me that g++ 13 cannot handle _Float64 correctly.
Is there any way to deal with this?

Reply via email to