mirror of
https://github.com/libretro/parallel-dc.git
synced 2026-11-07 12:37:53 -10:00
The C++11 backend hands the value argument straight to std::atomic_init, std::atomic_store_explicit and the std::atomic_fetch_*_explicit templates. Before P0558R1 (libstdc++ 8 and older) those deduce the element type from the value as well as from the pointer, so EmuBaton's unnamed enumerators and PsoState fail to deduce and the core does not build on GCC 8 (#1215). The macros now cast the value to int, as the size_t ones already do, which is what the member-function forms of the same operations do anyway. tools/threads/old_stl.sh keeps it that way: it builds a TU with the core's uses of every value macro against the host <atomic> and runs it, then parses it again against a stand-in <atomic> with the pre-P0558R1 signatures, so the failure shows on any compiler. The old-stl workflow runs it under GCC and clang.