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

            Bug ID: 116838
           Summary: Problem with warming c23, c++23
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lukaszcz18 at wp dot pl
  Target Milestone: ---

Test http://www.equation.com/ftpdir/gcc/gcc-15-20240825-64.exe
Unfortunately ffmpeg 7.1.0 development requires using c23/c++23 for the latest
add-ons.
Warning that does not appear in earlier versions of gcc.

Where to find #include <stdbit.h> in c23?
Where to find SetThreadDescription?

Codec vvenc
```
In file included from MCTF.cpp:52:
../Utilities/NoMallocThreadPool.h: In lambda function:
../Utilities/NoMallocThreadPool.h:160:31: warning: implicit capture of 'this'
via '[=]' is deprecated in C++20 [-Wdeprecated]
  160 |     nonconst->m_cond.wait( l, [=] { return !m_intBarrier.isBlocked(); }
);
      |                               ^
../Utilities/NoMallocThreadPool.h:160:31: note: add explicit 'this' or '*this'
capture
```
codec fdk-aac
```
ps_encode.cpp: In function 'FDK_PSENC_ERROR
FDKsbrEnc_PSEncode(HANDLE_PS_ENCODE, HANDLE_PS_OUT, UCHAR*, UINT, FIXP_DBL*
(*)[2][2], INT, INT)':
ps_encode.cpp:1002:34: warning: arithmetic between different enumeration types
'PS_CONSTS' and 'PS_BANDS' is deprecated [-Wdeprecated-enum-enum-conversion]
 1002 |                 PS_MAX_ENVELOPES * PS_MAX_BANDS * sizeof(PS_DELTA));
```
codec davs2
```
decoder.cc: In function 'void decoder_signal(davs2_t*, davs2_frame_t*, int)':
decoder.cc:268:12: warning: '++' expression of 'volatile'-qualified type is
deprecated [-Wvolatile]
  268 |     frame->i_decoded_line++;
      |     ~~~~~~~^~~~~~~~~~~~~~
```
codec x265
```
sao.cpp: In member function 'void x265::SAO::rdoSaoUnitCu(x265::SAOParam*, int,
int, int)':
sao.cpp:1242:66: warning: arithmetic between different enumeration types
'x265::SAO::<unnamed enum>' and 'x265::SAOType' is deprecated
[-Wdeprecated-enum-enum-conversion]
 1242 |     X265_CHECK(sizeof(PerPlane) == (sizeof(int32_t) * (NUM_PLANE *
MAX_NUM_SAO_TYPE * MAX_NUM_SAO_CLASS)), "Found Padding space in struct
PerPlane");
      |                                                       
~~~~~~~~~~^~~~~~~~~~~~~~~~~~
common.h:113:37: note: in definition of macro 'X265_CHECK'
  113 | #define X265_CHECK(expr, ...) if (!(expr)) { \
      |                                     ^~~~
```
```
frameencoder.cpp:1748:16: warning: '++' expression of 'volatile'-qualified type
is deprecated [-Wvolatile]
 1748 |         curRow.completed++;
      |         ~~~~~~~^~~~~~~~~
```
vapoursynth
```
avisynth_compat.cpp:1309:56: error: no match for 'operator+' (operand types are
'const char [16]' and 'std::u8string' {aka
'std::__cxx11::basic_string<char8_t>'})
 1309 |             vsapi->mapSetError(out, ("Failed to load " +
fsPath.u8string() + ". GetLastError() returned " + std::to_string(lastError) +
". The file you tried to load or one of its dependencies is probably
missing.").c_str());
      |                                      ~~~~~~~~~~~~~~~~~ ^
~~~~~~~~~~~~~~~~~
      |                                      |                                 
|
      |                                      const char [16]                   
std::u8string {aka std::__cxx11::basic_string<char8_t>}
```

fmt c++23
```
In file included from fmt.cc:126:
std.h:116:33: error: declaration of partial specialization in unbraced
export-declaration
  116 | template <typename Char> struct formatter<std::filesystem::path, Char>
{
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:116:33: note: a specialization is always exported alongside its primary
template
std.h:186:8: error: declaration of partial specialization in unbraced
export-declaration
  186 | struct formatter<std::bitset<N>, Char> : nested_formatter<string_view>
{
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:186:8: note: a specialization is always exported alongside its primary
template
std.h:212:8: error: declaration of partial specialization in unbraced
export-declaration
  212 | struct formatter<std::thread::id, Char> : basic_ostream_formatter<Char>
{};
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:212:8: note: a specialization is always exported alongside its primary
template
std.h:219:8: error: declaration of partial specialization in unbraced
export-declaration
  219 | struct formatter<std::optional<T>, Char,
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  220 |                  std::enable_if_t<is_formattable<T, Char>::value>> {
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:219:8: note: a specialization is always exported alongside its primary
template
std.h:282:8: error: declaration of partial specialization in unbraced
export-declaration
  282 | struct formatter<std::expected<T, E>, Char,
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  283 |                  std::enable_if_t<(std::is_void<T>::value ||
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  284 |                                    is_formattable<T, Char>::value) &&
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  285 |                                   is_formattable<E, Char>::value>> {
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:282:8: note: a specialization is always exported alongside its primary
template
std.h:313:1: error: explicit specializations are not permitted here
  313 | template <> struct formatter<std::source_location> {
      | ^~~~~~~~~~~
std.h:313:1: note: a specialization is always exported alongside its primary
template
std.h:369:33: error: declaration of partial specialization in unbraced
export-declaration
  369 | template <typename Char> struct formatter<std::monostate, Char> {
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:369:33: note: a specialization is always exported alongside its primary
template
std.h:383:8: error: declaration of partial specialization in unbraced
export-declaration
  383 | struct formatter<
      |        ^~~~~~~~~~
  384 |     Variant, Char,
      |     ~~~~~~~~~~~~~~
  385 |     std::enable_if_t<std::conjunction_v<
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  386 |         is_variant_like<Variant>, is_variant_formattable<Variant,
Char>>>> {
      |        
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:383:8: note: a specialization is always exported alongside its primary
template
std.h:416:1: error: explicit specializations are not permitted here
  416 | template <> struct formatter<std::error_code> {
      | ^~~~~~~~~~~
std.h:416:1: note: a specialization is always exported alongside its primary
template
std.h:523:8: error: declaration of partial specialization in unbraced
export-declaration
  523 | struct formatter<std::type_info, Char  // DEPRECATED! Mixing code unit
types.
      |       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  524 |                  > {
      |                  ~
std.h:523:8: note: a specialization is always exported alongside its primary
template
std.h:540:8: error: declaration of partial specialization in unbraced
export-declaration
  540 | struct formatter<
      |        ^~~~~~~~~~
  541 |     T, Char,  // DEPRECATED! Mixing code unit types.
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  542 |     typename std::enable_if<std::is_base_of<std::exception,
T>::value>::type> {
      |    
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:540:8: note: a specialization is always exported alongside its primary
template
std.h:606:8: error: declaration of partial specialization in unbraced
export-declaration
  606 | struct formatter<BitRef, Char,
      |        ^~~~~~~~~~~~~~~~~~~~~~~
  607 |                 
enable_if_t<detail::is_bit_reference_like<BitRef>::value>>
      |                 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:606:8: note: a specialization is always exported alongside its primary
template
std.h:626:8: error: declaration of partial specialization in unbraced
export-declaration
  626 | struct formatter<std::atomic<T>, Char,
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  627 |                  enable_if_t<is_formattable<T, Char>::value>>
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:626:8: note: a specialization is always exported alongside its primary
template
std.h:639:8: error: declaration of partial specialization in unbraced
export-declaration
  639 | struct formatter<std::atomic_flag, Char> : formatter<bool, Char> {
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:639:8: note: a specialization is always exported alongside its primary
template
std.h:649:45: error: declaration of partial specialization in unbraced
export-declaration
  649 | template <typename T, typename Char> struct formatter<std::complex<T>,
Char> {
      |                                            
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
std.h:649:45: note: a specialization is always exported alongside its primary
template
std.h:715:8: error: declaration of partial specialization in unbraced
export-declaration
  715 | struct formatter<std::reference_wrapper<T>, Char,
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  716 |                  enable_if_t<is_formattable<remove_cvref_t<T>,
Char>::value>>
      |                 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

python 3.13
```
posixmodule.c: In function 'os__path_splitroot_impl':
posixmodule.c:5136:55: error: passing argument 2 of 'PathCchSkipRoot' from
incompatible pointer type [-Wincompatible-pointer-types]
 5136 |     ret = PathCchSkipRoot(buffer, /*(const WCHAR **)*/&end);
      |                                                       ^~~~
      |                                                       |
      |                                                       wchar_t ** {aka
short unsigned int **}
In file included from posixmodule.c:35:
C:/gcc1500/x86_64-w64-mingw32/include/pathcch.h:41:75: note: expected 'const
WCHAR **' {aka 'const short unsigned int *'} but argument is of type 'wchar_t
**' {aka 'short unsigned int **'}
   41 |   WINPATHCCHAPI HRESULT APIENTRY PathCchSkipRoot (PCWSTR pszPath,
PCWSTR *ppszRootEnd);
      |                                                                  
~~~~~~~~^~~~~~~~~~~
```

Reply via email to