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

            Bug ID: 107636
           Summary: [13 regression] r13-3761-ga239a63f868e29 breaks build
                    on powerpc64le with __float128 support
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: enrico.seiler+gccbugs at outlook dot com
  Target Milestone: ---

The following does not compile:

```
#define __STDCPP_FLOAT128_T__
#define _GLIBCXX_HAVE_FLOAT128_MATH
#define _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT

#include <charconv>

int main()
{}
```

```
include/c++/13.0.0/charconv: In function ‘std::to_chars_result
std::to_chars(char*, char*, _Float128)’:
include/c++/13.0.0/charconv:890:5: error: expected primary-expression before
‘return’
  890 |     return to_chars(__first, __last, static_cast<__float128>(__value));
      |     ^~~~~~
include/c++/13.0.0/charconv: In function ‘std::to_chars_result
std::to_chars(char*, char*, _Float128, chars_format)’:
include/c++/13.0.0/charconv:897:5: error: expected primary-expression before
‘return’
  897 |     return to_chars(__first, __last, static_cast<__float128>(__value),
__fmt);
      |     ^~~~~~
include/c++/13.0.0/charconv: In function ‘std::to_chars_result
std::to_chars(char*, char*, _Float128, chars_format, int)’:
include/c++/13.0.0/charconv:904:5: error: expected primary-expression before
‘return’
  904 |     return to_chars(__first, __last, static_cast<__float128>(__value),
__fmt,
      |     ^~~~~~
```

Related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107562

It seems there are a few __extension__ where they should not be:

  inline to_chars_result
  to_chars(char* __first, char* __last, _Float128 __value) noexcept
  {
    __extension__
    return to_chars(__first, __last, static_cast<__float128>(__value));
  }

Reply via email to