llvm-project/libcxx/test/std/atomics
Ruslan Arutyunyan c448ea948c [libc++] Fix for the Bug 41784
Add deleted volatile copy-assignment operator in the most derived atomic
to fix the Bug 41784. The root cause: there is an `operator=(T) volatile`
that has better match than the deleted copy-assignment operator of the base
class when `this` is `volatile`. The compiler sees that right operand of
the assignment operator can be converted to `T` and chooses that path
without taking into account the deleted copy-assignment operator of the
base class.

The current behavior on libstdc++ is different from what we have in libc++.
On the same test compilation fails with libstdc++. Proof: https://godbolt.org/z/nebPYd
(everything is the same except the -stdlib option).

I choose the way with explicit definition of copy-assignment for atomic
in the most derived class. But probably we can fix that by moving
`operator=(T)` overloads to the base class from both specializations.
At first glance, it shouldn't break anything.

Differential Revision: https://reviews.llvm.org/D90968
2021-02-01 10:14:22 -05:00
..
atomics.fences Add include for 'test_macros.h' to all the tests that were missing them. Thanks to Zoe for the (big, but simple) patch. NFC intended. 2019-05-31 18:35:30 +00:00
atomics.flag [libc++][test] Don't violate precondition [atomics.flag]/6 2020-10-19 17:14:01 -07:00
atomics.general [libc++] Remove useless nothing_to_do.pass.cpp tests 2020-04-03 13:48:34 -04:00
atomics.lockfree [libc++] [P0482] [C++20] Implement missing bits for atomic 2020-11-24 21:07:57 +01:00
atomics.order [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
atomics.syn Support tests in freestanding 2019-02-04 20:31:13 +00:00
atomics.types.generic [libc++] Fix for the Bug 41784 2021-02-01 10:14:22 -05:00
atomics.types.operations [libc++] Fix for the Bug 41784 2021-02-01 10:14:22 -05:00
types.pass.cpp [libc++] [P0482] [C++20] Implement missing bits for atomic 2020-11-24 21:07:57 +01:00