libstd++: Only support atomic_ref::wait tests which are always lockfree

Fixes a regression on arm32 targets.

libstdc++-v3/ChangeLog:
	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
	test logic with constexpr check for is_always_lock_free.
This commit is contained in:
Thomas Rodgers 2021-06-09 13:44:31 -07:00
parent d4faa36e75
commit eb3a3bb8ce
1 changed files with 14 additions and 11 deletions

View File

@ -30,17 +30,20 @@ template<typename S>
void
test (S va, S vb)
{
S aa{ va };
S bb{ vb };
std::atomic_ref<S> a{ aa };
a.wait(bb);
std::thread t([&]
{
a.store(bb);
a.notify_one();
});
a.wait(aa);
t.join();
if constexpr (std::atomic_ref<S>::is_always_lock_free)
{
S aa{ va };
S bb{ vb };
std::atomic_ref<S> a{ aa };
a.wait(bb);
std::thread t([&]
{
a.store(bb);
a.notify_one();
});
a.wait(aa);
t.join();
}
}
int