[libc++] Fix std::copy and std::move for ranges with potentially overlapping tail padding

This fixes thr bug reported in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108846.

Reviewed By: ldionne, #libc

Spies: mstorsjo, libcxx-commits

Differential Revision: https://reviews.llvm.org/D151953
This commit is contained in:
Nikolas Klauser
2023-06-30 13:47:39 -07:00
committed by Nikolas Klauser
parent e8e0f32958
commit c4e98722ca
22 changed files with 440 additions and 375 deletions

View File

@@ -1576,6 +1576,7 @@ module std [system] {
module conjunction { private header "__type_traits/conjunction.h" }
module copy_cv { private header "__type_traits/copy_cv.h" }
module copy_cvref { private header "__type_traits/copy_cvref.h" }
module datasizeof { private header "__type_traits/datasizeof.h" }
module decay { private header "__type_traits/decay.h" }
module dependent_type { private header "__type_traits/dependent_type.h" }
module disjunction { private header "__type_traits/disjunction.h" }