llvm-capstone/libcxx
Louis Dionne 3456b2f60a [libc++] Refactor __debug_three_way_comp
This makes __debug_three_way_comp consistent with __debug_less and
in particular gets rid of a potential use-after-move caused by the
use of std::forward. In the previous version of the code, we would
call `__do_compare_assert` after forwarding the arguments into the
comparator, which could end up using the arguments after they've been
moved from.

This also simplifies how we call `__do_compare_assert` by using
`if constexpr` and adds a missing test for proxy iterators in
lexicographical_compare_three_way, which could have found this
issue.

Differential Revision: https://reviews.llvm.org/D152753
2023-06-13 14:24:56 -07:00
..
benchmarks [libc++] Removes CMake work-arounds. 2023-06-06 08:10:31 +02:00
cmake [libc++] Roll up fstream support into filesystem support 2023-06-07 08:04:58 -07:00
docs [libc++] Add [[nodiscard]] extensions to the functions in <bit> 2023-06-13 08:01:34 -07:00
include [libc++] Refactor __debug_three_way_comp 2023-06-13 14:24:56 -07:00
lib [libc++] Remove symbols for a std::allocator_arg & friends from the dylib 2023-04-19 17:27:14 -04:00
modules [libc++][modules] Adds std module cppm files. 2023-05-23 18:51:27 +02:00
src [libc++] Android temp dir is /data/local/tmp, enable Windows test 2023-06-12 20:43:00 -07:00
test [libc++] Refactor __debug_three_way_comp 2023-06-13 14:24:56 -07:00
utils [libc++][NFC] Reformat features.py 2023-06-13 10:24:46 -07:00
.clang-format [libc++] Introduce __is_pointer_in_range 2023-06-07 13:33:58 -07:00
.clang-tidy [libc++] Enable radability-identifier-naming for local variables and fix any problems 2023-02-11 20:03:53 +01:00
.gitignore
appveyor-reqs-install.cmd
appveyor.yml [libc++] Re-apply "Always build c++experimental.a"" 2022-07-19 10:44:19 -04:00
CMakeLists.txt [libc++] Roll up fstream support into filesystem support 2023-06-07 08:04:58 -07:00
CREDITS.TXT [libcxx] Add mdspan/extents 2023-05-16 14:30:36 -07:00
LICENSE.TXT
TODO.TXT