From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C4AFA3858409; Mon, 28 Nov 2022 11:59:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C4AFA3858409 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1669636769; bh=2hkG1SLyjL/SwcaMKMFCgi9K7sztBNc/96l7+MMc1Q4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=KSRApynu8lXNgTdXVeMA4/vjxq8hUYBeKlIXTLJZxuZvJcJyExNXIt6kYNbzYxFyJ T7WVtGbohkuraO4h/I7Gcext8v/tqAJyyoYMkv42PWxW6KAiVxNl14mNcoK8vdvzoO NTfo0L2mMwxP7K4jiUxNdFn/JfcIThmpor5pmQLI= From: "lukaszcz18 at wp dot pl" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/107886] Problem witch std::latch, std::binary_semaphores in C++20 Date: Mon, 28 Nov 2022 11:59:28 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Version: 11.3.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: lukaszcz18 at wp dot pl X-Bugzilla-Status: WAITING X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107886 --- Comment #10 from Jamaika --- ``` Using built-in specs. COLLECT_GCC=3Dg++.exe Target: x86_64-w64-mingw32 Configured with: /home/ma/m/source/gcc-g/configure --host=3Dx86_64-w64-ming= w32 --target=3Dx86_64-w64-mingw32 --disable-nls --enable-languages=3Dc,c++,objc= ,obj-c++ --with-gmp=3D/home/ma/m/build/for_target --with-mpfr=3D/home/ma/m/build/for= _target --with-mpc=3D/home/ma/m/build/for_target --with-isl=3D/home/ma/m/build/for_= target --enable-twoprocess --disable-libstdcxx-pch --disable-win32-registry --disable-shared --enable-fully-dynamic-string --enable-libssp --prefix=3D/home/ma/m/target --with-sysroot=3D/home/ma/m/target Thread model: win32 Supported LTO compression algorithms: zlib gcc version 13.0.0 20221124 (experimental) (GCC) COLLECT_GCC_OPTIONS=3D'-v' '-std=3Dgnu++20' '-ftree-vectorize' '-D' 'WINVER= =3D0x0602' '-D' '_WIN32_WINNT=3D0x0602' '-g0' '-O3' '-c' '-o' 'latch_windows.o' '-mtune=3Dgeneric' '-march=3Dx86-64' c:/gcc1300/bin/../libexec/gcc/x86_64-w64-mingw32/13.0.0/cc1plus.exe -quiet= -v -iprefix c:\gcc1300\bin\../lib/gcc/x86_64-w64-mingw32/13.0.0/ -U_REENTRANT = -D WINVER=3D0x0602 -D _WIN32_WINNT=3D0x0602 latch_windows.cpp -quiet -dumpbase latch_windows.cpp -dumpbase-ext .cpp -mtune=3Dgeneric -march=3Dx86-64 -g0 -= O3 -std=3Dgnu++20 -version -ftree-vectorize -o C:\Users\KOMPUT~1\AppData\Local\Temp\ccI5bDpg.s GNU C++20 (GCC) version 13.0.0 20221124 (experimental) (x86_64-w64-mingw32) compiled by GNU C version 13.0.0 20221124 (experimental), GMP versi= on 6.2.1, MPFR version 4.1.1, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=3D30 --param ggc-min-heapsize=3D4096 ignoring duplicate directory "c:/gcc1300/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../inc= lude/c++/13.0.0" ignoring duplicate directory "c:/gcc1300/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../inc= lude/c++/13.0.0/x86_64-w64-mingw32" ignoring duplicate directory "c:/gcc1300/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../inc= lude/c++/13.0.0/backward" ignoring duplicate directory "c:/gcc1300/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/13.0.0/include" ignoring nonexistent directory "/home/ma/m/target/home/ma/m/target/lib/gcc/x86_64-w64-mingw32/13.0.0/../..= /../../include" ignoring duplicate directory "c:/gcc1300/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/13.0.0/include-fixed" ignoring duplicate directory "c:/gcc1300/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../x86= _64-w64-mingw32/include" ignoring nonexistent directory "/home/ma/m/target/mingw/include" #include "..." search starts here: #include <...> search starts here: c:\gcc1300\bin\../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../include/c++= /13.0.0 c:\gcc1300\bin\../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../include/c++= /13.0.0/x86_64-w64-mingw32 c:\gcc1300\bin\../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../include/c++= /13.0.0/backward c:\gcc1300\bin\../lib/gcc/x86_64-w64-mingw32/13.0.0/include c:\gcc1300\bin\../lib/gcc/x86_64-w64-mingw32/13.0.0/include-fixed c:\gcc1300\bin\../lib/gcc/x86_64-w64-mingw32/13.0.0/../../../../x86_64-w64-= mingw32/include End of search list. GNU C++20 (GCC) version 13.0.0 20221124 (experimental) (x86_64-w64-mingw32) compiled by GNU C version 13.0.0 20221124 (experimental), GMP versi= on 6.2.1, MPFR version 4.1.1, MPC version 1.2.1, isl version isl-0.24-GMP GGC heuristics: --param ggc-min-expand=3D30 --param ggc-min-heapsize=3D4096 Compiler executable checksum: 2b6c2fb9839dec486c0793745b5cdfdc In file included from c:\gcc1300\include\c++\13.0.0\latch:38, from latch_windows.cpp:5: c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::atomic_flag::wait(bool, std::memory_order) const': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:264:12: error: '__atomic_wait_address_v' is not a member of 'std' 264 | std::__atomic_wait_address_v(&_M_i, __v, | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::atomic_flag::notify_one()': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:272:12: error: '__atomic_notify_address' is not a member of 'std' 272 | { std::__atomic_notify_address(&_M_i, false); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::atomic_flag::notify_all()': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:278:12: error: '__atomic_notify_address' is not a member of 'std' 278 | { std::__atomic_notify_address(&_M_i, true); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::__atomic_base<_IntTp>::wait(__int_type, std::memory_order) const': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:613:14: error: '__atomic_wait_address_v' is not a member of 'std' 613 | std::__atomic_wait_address_v(&_M_i, __old, | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::__atomic_base<_IntTp>::notify_one()': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:621:14: error: '__atomic_notify_address' is not a member of 'std' 621 | { std::__atomic_notify_address(&_M_i, false); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::__atomic_base<_IntTp>::notify_all()': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:627:14: error: '__atomic_notify_address' is not a member of 'std' 627 | { std::__atomic_notify_address(&_M_i, true); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::__atomic_base<_PTp*>::wait(__pointer_type, std::memory_order) const': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:915:14: error: '__atomic_wait_address_v' is not a member of 'std' 915 | std::__atomic_wait_address_v(&_M_p, __old, | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::__atomic_base<_PTp*>::notify_one() const': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:924:14: error: '__atomic_notify_address' is not a member of 'std' 924 | { std::__atomic_notify_address(&_M_p, false); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In member function 'void std::__atomic_base<_PTp*>::notify_all() const': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:930:14: error: '__atomic_notify_address' is not a member of 'std' 930 | { std::__atomic_notify_address(&_M_p, true); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In function 'void std::__atomic_impl::wait(const _Tp*, _Val<_Tp>, std::memory_order)': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:1092:14: error: '__atomic_wait_address_v' is not a member of 'std' 1092 | std::__atomic_wait_address_v(__ptr, __old, | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In function 'void std::__atomic_impl::notify_one(const _Tp*)': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:1101:14: error: '__atomic_notify_address' is not a member of 'std' 1101 | { std::__atomic_notify_address(__ptr, false); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h: In function 'void std::__atomic_impl::notify_all(const _Tp*)': c:\gcc1300\include\c++\13.0.0\bits\atomic_base.h:1108:14: error: '__atomic_notify_address' is not a member of 'std' 1108 | { std::__atomic_notify_address(__ptr, true); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\latch: At global scope: c:\gcc1300\include\c++\13.0.0\latch:90:35: error: '__platform_wait_t' is no= t a member of 'std::__detail' 90 | alignas(__alignof__(__detail::__platform_wait_t)) __detail::__platform_wait_t _M_a; | ^~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\latch: In static member function 'static constexpr std::ptrdiff_t std::latch::max()': c:\gcc1300\include\c++\13.0.0\latch:53:48: error: '__platform_wait_t' is no= t a member of 'std::__detail' 53 | { return __gnu_cxx::__int_traits<__detail::__platform_wait_t>::__max; } | ^~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\latch:53:65: error: template argument 1 is invalid 53 | { return __gnu_cxx::__int_traits<__detail::__platform_wait_t>::__max; } | ^ c:\gcc1300\include\c++\13.0.0\latch: In constructor 'constexpr std::latch::latch(std::ptrdiff_t)': c:\gcc1300\include\c++\13.0.0\latch:56:9: error: class 'std::latch' does not have any field named '_M_a' 56 | : _M_a(__expected) { } | ^~~~ c:\gcc1300\include\c++\13.0.0\latch: In member function 'void std::latch::count_down(std::ptrdiff_t)': c:\gcc1300\include\c++\13.0.0\latch:65:52: error: '_M_a' was not declared in this scope 65 | auto const __old =3D __atomic_impl::fetch_sub(&_M_a, | ^~~~ c:\gcc1300\include\c++\13.0.0\latch: In member function 'bool std::latch::try_wait() const': c:\gcc1300\include\c++\13.0.0\latch:73:35: error: '_M_a' was not declared in this scope 73 | { return __atomic_impl::load(&_M_a, memory_order::acquire) =3D= =3D 0; } | ^~~~ c:\gcc1300\include\c++\13.0.0\latch: In member function 'void std::latch::wait() const': c:\gcc1300\include\c++\13.0.0\latch:79:12: error: '__atomic_wait_address' is not a member of 'std' 79 | std::__atomic_wait_address(&_M_a, __pred); | ^~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\latch:79:35: error: '_M_a' was not declared in this scope 79 | std::__atomic_wait_address(&_M_a, __pred); | ^~~~ In file included from c:\gcc1300\include\c++\13.0.0\mutex:60, from latch_windows.cpp:6: c:\gcc1300\include\c++\13.0.0\atomic: In member function 'void std::atomic<_Tp>::wait(_Tp, std::memory_order) const': c:\gcc1300\include\c++\13.0.0\atomic:393:12: error: '__atomic_wait_address_= v' is not a member of 'std' 393 | std::__atomic_wait_address_v(&_M_i, __old, | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\atomic: In member function 'void std::atomic<_Tp>::notify_one()': c:\gcc1300\include\c++\13.0.0\atomic:401:12: error: '__atomic_notify_addres= s' is not a member of 'std' 401 | { std::__atomic_notify_address(&_M_i, false); } | ^~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\atomic: In member function 'void std::atomic<_Tp>::notify_all()': c:\gcc1300\include\c++\13.0.0\atomic:405:12: error: '__atomic_notify_addres= s' is not a member of 'std' 405 | { std::__atomic_notify_address(&_M_i, true); } | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:3= 8, from c:\gcc1300\include\c++\13.0.0\semaphore:37, from c:\gcc1300\include\c++\13.0.0\stop_token:39, from c:\gcc1300\include\c++\13.0.0\thread:42, from latch_windows.cpp:7: c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: At global scope: c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:199:5: error: expect= ed class-name before '{' token 199 | { | ^ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:203:26: error: '__platform_wait_t' has not been declared 203 | _M_do_wait_until(__platform_wait_t* __addr, __platform_wait= _t __old, | ^~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:203:53: error: '__platform_wait_t' has not been declared 203 | _M_do_wait_until(__platform_wait_t* __addr, __platform_wait= _t __old, | ^~~~~~~~~~~~~~~= ~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In member function 'bool std::__detail::__timed_waiter_pool::_M_do_wait_until(int*, int, const std::chrono::time_point<_Clock, _Duration1>&)': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:209:11: error: '__platform_wait_t' was not declared in this scope 209 | __platform_wait_t __val; | ^~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:210:34: error: '__va= l' was not declared in this scope 210 | __atomic_load(__addr, &__val, __ATOMIC_RELAXED); | ^~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:210:24: error: argum= ent 2 of '__atomic_load' must be a pointer type 210 | __atomic_load(__addr, &__val, __ATOMIC_RELAXED); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:213:37: error: '_M_m= tx' was not declared in this scope 213 | lock_guard __l(_M_mtx); | ^~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:214:40: error: '_M_c= v' was not declared in this scope 214 | return __cond_wait_until(_M_cv, _M_mtx, __atime); | ^~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In member function 'bool std::__detail::__timed_backoff_spin_policy::operator()() const': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:257:13: error: '__thread_yield' was not declared in this scope; did you mean '__threadid'? 257 | __thread_yield(); | ^~~~~~~~~~~~~~ | __threadid c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: At global scope: c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:44: error: expec= ted template-name before '<' token 266 | struct __timed_waiter : __waiter_base<__timed_waiter_pool> | ^ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:44: error: expec= ted '{' before '<' token c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In function 'bool std::__atomic_wait_address_until_v(const _Tp*, _Tp&&, _ValFn&&, const chrono::time_point<_Clock, _Dur2>&)': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:391:37: error: '__w'= has incomplete type 391 | __detail::__enters_timed_wait __w{__addr}; | ^~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:14: note: declaration of 'using std::__detail::__enters_timed_wait =3D struct std::__detail::__timed_waiter >' 266 | struct __timed_waiter : __waiter_base<__timed_waiter_pool> | ^~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In function 'bool std::__atomic_wait_address_until(const _Tp*, _Pred, const chrono::time_point<_Clock, _Dur2>&)': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:402:37: error: '__w'= has incomplete type 402 | __detail::__enters_timed_wait __w{__addr}; | ^~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:14: note: declaration of 'using std::__detail::__enters_timed_wait =3D struct std::__detail::__timed_waiter >' 266 | struct __timed_waiter : __waiter_base<__timed_waiter_pool> | ^~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: At global scope: c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:409:54: error: '__platform_wait_t' in namespace 'std::__detail' does not name a type 409 | __atomic_wait_address_until_bare(const __detail::__platform_wai= t_t* __addr, | ^~~~~~~~~~~~~~= ~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In function 'bool std::__atomic_wait_address_until_bare(const int*, _Pred, const chrono::time_point<_Clock, _Dur>&)': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:414:35: error: '__w'= has incomplete type 414 | __detail::__bare_timed_wait __w{__addr}; | ^~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:14: note: declaration of 'using std::__detail::__bare_timed_wait =3D struct std::__detail::__timed_waiter >' 266 | struct __timed_waiter : __waiter_base<__timed_waiter_pool> | ^~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In function 'bool std::__atomic_wait_address_for_v(const _Tp*, _Tp&&, _ValFn&&, const chrono::duration<_Rep2, _Period2>&)': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:424:37: error: '__w'= has incomplete type 424 | __detail::__enters_timed_wait __w{__addr}; | ^~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:14: note: declaration of 'using std::__detail::__enters_timed_wait =3D struct std::__detail::__timed_waiter >' 266 | struct __timed_waiter : __waiter_base<__timed_waiter_pool> | ^~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In function 'bool std::__atomic_wait_address_for(const _Tp*, _Pred, const chrono::duration<_R= ep2, _Period2>&)': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:435:37: error: '__w'= has incomplete type 435 | __detail::__enters_timed_wait __w{__addr}; | ^~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:14: note: declaration of 'using std::__detail::__enters_timed_wait =3D struct std::__detail::__timed_waiter >' 266 | struct __timed_waiter : __waiter_base<__timed_waiter_pool> | ^~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: At global scope: c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:442:52: error: '__platform_wait_t' in namespace 'std::__detail' does not name a type 442 | __atomic_wait_address_for_bare(const __detail::__platform_wait_= t* __addr, | ^~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h: In function 'bool std::__atomic_wait_address_for_bare(const int*, _Pred, const chrono::duration<_Rep, _Period>&)': c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:446:35: error: '__w'= has incomplete type 446 | __detail::__bare_timed_wait __w{__addr}; | ^~~ c:\gcc1300\include\c++\13.0.0\bits\atomic_timed_wait.h:266:14: note: declaration of 'using std::__detail::__bare_timed_wait =3D struct std::__detail::__timed_waiter >' 266 | struct __timed_waiter : __waiter_base<__timed_waiter_pool> | ^~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: At global scope: c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:188:60: error: expected= ')' before '__count' 188 | explicit __atomic_semaphore(__detail::__platform_wait_t __count) noexcept | ~ ^~~~~~~~ | ) c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:198:23: error: 'std::__detail::__platform_wait_t' has not been declared 198 | _S_do_try_acquire(__detail::__platform_wait_t* __counter) noexc= ept | ^~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:262:23: error: '__platform_wait_alignment' is not a member of 'std::__detail' 262 | alignas(__detail::__platform_wait_alignment) | ^~~~~~~~~~~~~~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In lambda function: c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:214:50: error: 'struct std::__atomic_semaphore' has no member named '_M_counter' 214 | [this] { return _S_do_try_acquire(&this->_M_counter); }; | ^~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In member function 'vo= id std::__atomic_semaphore::_M_acquire()': c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:215:12: error: '__atomic_wait_address_bare' is not a member of 'std'; did you mean '__atomic_wait_address_for'? 215 | std::__atomic_wait_address_bare(&_M_counter, __pred); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | __atomic_wait_address_for c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:215:40: error: '_M_coun= ter' was not declared in this scope; did you mean 'PMCCounter'? 215 | std::__atomic_wait_address_bare(&_M_counter, __pred); | ^~~~~~~~~~ | PMCCounter c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In lambda function: c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:222:50: error: 'struct std::__atomic_semaphore' has no member named '_M_counter' 222 | [this] { return _S_do_try_acquire(&this->_M_counter); }; | ^~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In member function 'bo= ol std::__atomic_semaphore::_M_try_acquire()': c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:223:29: error: '__atomic_spin' is not a member of 'std::__detail' 223 | return std::__detail::__atomic_spin(__pred); | ^~~~~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In lambda function: c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:232:52: error: 'struct std::__atomic_semaphore' has no member named '_M_counter' 232 | [this] { return _S_do_try_acquire(&this->_M_counter); }; | ^~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In member function 'bo= ol std::__atomic_semaphore::_M_try_acquire_until(const std::chrono::time_point<_Clock, _Duration1>&)': c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:234:50: error: '_M_coun= ter' was not declared in this scope; did you mean 'PMCCounter'? 234 | return __atomic_wait_address_until_bare(&_M_counter, __pred, __atime); | ^~~~~~~~~~ | PMCCounter c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In lambda function: c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:243:52: error: 'struct std::__atomic_semaphore' has no member named '_M_counter' 243 | [this] { return _S_do_try_acquire(&this->_M_counter); }; | ^~~~~~~~~~ c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In member function 'bo= ol std::__atomic_semaphore::_M_try_acquire_for(const std::chrono::duration<_Re= p1, _Period1>&)': c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:245:48: error: '_M_coun= ter' was not declared in this scope; did you mean 'PMCCounter'? 245 | return __atomic_wait_address_for_bare(&_M_counter, __pred, __rtime); | ^~~~~~~~~~ | PMCCounter c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h: In member function 'vo= id std::__atomic_semaphore::_M_release(std::ptrdiff_t)': c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:251:41: error: '_M_coun= ter' was not declared in this scope; did you mean 'PMCCounter'? 251 | if (0 < __atomic_impl::fetch_add(&_M_counter, __update, memory_order_release)) | ^~~~~~~~~~ | PMCCounter c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:254:39: error: '_M_coun= ter' was not declared in this scope; did you mean 'PMCCounter'? 254 | __atomic_notify_address_bare(&_M_counter, true); | ^~~~~~~~~~ | PMCCounter c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:254:9: error: '__atomic_notify_address_bare' was not declared in this scope; did you mean '__atomic_wait_address_for'? 254 | __atomic_notify_address_bare(&_M_counter, true); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | __atomic_wait_address_for c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:256:39: error: '_M_coun= ter' was not declared in this scope; did you mean 'PMCCounter'? 256 | __atomic_notify_address_bare(&_M_counter, true); | ^~~~~~~~~~ | PMCCounter c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:256:9: error: '__atomic_notify_address_bare' was not declared in this scope; did you mean '__atomic_wait_address_for'? 256 | __atomic_notify_address_bare(&_M_counter, true); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | __atomic_wait_address_for c:\gcc1300\include\c++\13.0.0\semaphore: In instantiation of 'std::counting_semaphore<__least_max_value>::counting_semaphore(std::ptrdif= f_t) [with long long int __least_max_value =3D 1; std::ptrdiff_t =3D long long i= nt]': c:\gcc1300\include\c++\13.0.0\stop_token:141:33: required from here c:\gcc1300\include\c++\13.0.0\semaphore:56:18: error: cannot convert 'std::ptrdiff_t' {aka 'long long int'} to 'const std::__atomic_semaphore&' 56 | : _M_sem(__desired) | ^~~~~~~~~ | | | std::ptrdiff_t {aka long long int} c:\gcc1300\include\c++\13.0.0\bits\semaphore_base.h:194:24: note:=20=20 initializing argument 1 of 'std::__atomic_semaphore::__atomic_semaphore(con= st std::__atomic_semaphore&)' 194 | __atomic_semaphore(const __atomic_semaphore&) =3D delete; | ^~~~~~~~~~~~~~~~~~~~~~~~~ ```=