Files
libretroadmin 64195a35d0 retro_atomic: cast the value in the C++11 backend's free-function macros
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.
2026-10-20 18:14:10 +02:00
..