llvm-project/libcxx
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
..
benchmarks [libc++] Set CMAKE_FOLDER. NFC. 2021-01-25 09:51:16 +01:00
cmake [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05:00
docs [Branch-Rename] Fix some links 2021-02-01 16:43:21 +05:30
include [libc++] Fix for the Bug 41784 2021-02-01 10:14:22 -05:00
lib [libc++] Implement format_error. 2021-01-28 18:02:53 +01:00
src [libc++] Allow building with C++17. 2021-01-31 14:25:01 +01:00
test [libc++] Fix for the Bug 41784 2021-02-01 10:14:22 -05:00
utils [libc++] Implement format_error. 2021-01-28 18:02:53 +01:00
www [Branch-Rename] Fix some links 2021-02-01 16:43:21 +05:30
.clang-format
.gitignore [libcxx] Fix .gitignore to not exclude test directories 2020-03-25 17:52:23 -07:00
CMakeLists.txt Bump the trunk major version to 13 2021-01-26 19:37:55 -08:00
CREDITS.TXT [libcxx] Adds [concept.same] 2020-04-08 18:00:13 -04:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
TODO.TXT [libc++][NFC] Remove outdated TODO item 2020-07-08 13:04:33 -04:00
appveyor-reqs-install.cmd Attempt to upgrade compiler used by appveyor builds 2019-04-03 20:40:01 +00:00
appveyor.yml disable appveyor config for MSVC 2015 2019-04-03 20:36:51 +00:00