llvm-project/libcxx
Arthur O'Dwyer 5c0ea7488b [libc++] Enable the optimized _IsSame on GCC as well as Clang.
However, there's a problem on both GCC and Clang: they can't mangle
`__is_same(T,U)` if it appears anywhere that affects mangling. That's
a hard error. And it turns out that GCC puts dependent return types
into the mangling more aggressively than Clang, so for GCC's benefit
we need to avoid using raw `_IsSame` in the return type of
`swap(tuple&, tuple&)`. Therefore, make `__all` into a named type
instead of an alias.

If we ever need to support a compiler without the __is_same builtin,
we can make this an alias template for `is_same<T,U>::type`.

Differential Revision: https://reviews.llvm.org/D115100
2021-12-15 20:19:56 -05:00
..
benchmarks Re-Reland "[benchmarks] Move libcxx's fork of google/benchmark and llvm/utils'" 2021-12-07 17:10:41 -08:00
cmake Reapply #2 of [runtimes] Fix building initial libunwind+libcxxabi+libcxx with compiler implied -lunwind 2021-12-09 21:38:14 +02:00
docs [libc++] Implement P0798R8 (Monadic operations for std::optional) 2021-12-15 22:49:03 +01:00
include [libc++] Enable the optimized _IsSame on GCC as well as Clang. 2021-12-15 20:19:56 -05:00
lib Microsoft's floating-point to_chars powered by Ryu and Ryu Printf 2021-12-12 16:34:50 +01:00
src [libc++] Remove C++ version guards in the dylib. 2021-12-14 17:37:52 +01:00
test [libc++] Implement P0798R8 (Monadic operations for std::optional) 2021-12-15 22:49:03 +01:00
utils [libc++] Implement P0798R8 (Monadic operations for std::optional) 2021-12-15 22:49:03 +01:00
.clang-format [libc++] Update clang-format to C++20. 2021-10-30 12:50:57 +02:00
.clang-tidy [libc++][NFC] Disable clang-tidy checks 2021-12-06 01:51:23 +01:00
.gitignore [libcxx] Fix .gitignore to not exclude test directories 2020-03-25 17:52:23 -07:00
CMakeLists.txt Reapply #2 of [runtimes] Fix building initial libunwind+libcxxabi+libcxx with compiler implied -lunwind 2021-12-09 21:38:14 +02:00
CREDITS.TXT Microsoft's floating-point to_chars powered by Ryu and Ryu Printf 2021-12-12 16:34:50 +01:00
LICENSE.TXT
TODO.TXT [libc++] Disallow volatile types in std::allocator 2021-09-22 11:47:38 -04:00
appveyor-reqs-install.cmd
appveyor.yml