https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99612
--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- The test case: $ (set -x && cat pr99612.C && g++ -O2 -S -Wall --std=c++20 -O2 -Wall -Winvalid-memory-model pr99612.C && g++ -O2 -S -Wall --std=c++20 -O2 -Wall -Winvalid-memory-model -Wsystem-headers pr99612.C) + cat pr99612.C #include <atomic> std::atomic<int> a; int f() { auto ret = a.load(std::memory_order_release); a.store(10, std::memory_order_acquire); return ret; } + g++ -O2 -S -Wall --std=c++20 -O2 -Wall -Winvalid-memory-model pr99612.C + /g++ -O2 -S -Wall --std=c++20 -O2 -Wall -Winvalid-memory-model -Wsystem-headers pr99612.C In file included from /build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/atomic:41, from pr99612.C:1: /build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/atomic_base.h: In function ‘int f()’: /build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/atomic_base.h:479:31: warning: invalid memory model for ‘__atomic_load’ [-Winvalid-memory-model] 479 | return __atomic_load_n(&_M_i, int(__m)); | ^ /build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/atomic_base.h:455:25: warning: invalid memory model for ‘__atomic_store’ [-Winvalid-memory-model] 455 | __atomic_store_n(&_M_i, __i, int(__m)); | ^