[libcxx-commits] [PATCH] D92190: [libc++] fix std::sort(T**, T**)
Brett Gutstein via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Nov 27 03:04:40 PST 2020
bfg updated this revision to Diff 308002.
bfg added a comment.
incorporate test suggsetions
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D92190/new/
https://reviews.llvm.org/D92190
Files:
libcxx/include/algorithm
libcxx/test/std/algorithms/alg.sorting/alg.sort/sort/sort.pass.cpp
Index: libcxx/test/std/algorithms/alg.sorting/alg.sort/sort/sort.pass.cpp
===================================================================
--- libcxx/test/std/algorithms/alg.sorting/alg.sort/sort/sort.pass.cpp
+++ libcxx/test/std/algorithms/alg.sorting/alg.sort/sort/sort.pass.cpp
@@ -132,6 +132,21 @@
test_larger_sorts(N, N);
}
+void
+test_pointer_sort()
+{
+ constexpr int array_size = 10;
+ const int v[array_size] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
+ const int *pv[array_size];
+ for (int i = 0; i < array_size; i++) {
+ pv[i] = &v[array_size - 1 - i];
+ }
+ std::sort(pv, pv + array_size);
+ assert(*pv[0] == v[0]);
+ assert(*pv[1] == v[1]);
+ assert(*pv[array_size - 1] == v[array_size - 1]);
+}
+
int main(int, char**)
{
// test null range
@@ -155,5 +170,7 @@
test_larger_sorts(1000);
test_larger_sorts(1009);
+ test_pointer_sort();
+
return 0;
}
Index: libcxx/include/algorithm
===================================================================
--- libcxx/include/algorithm
+++ libcxx/include/algorithm
@@ -4162,7 +4162,7 @@
void
sort(_Tp** __first, _Tp** __last)
{
- _VSTD::sort((size_t*)__first, (size_t*)__last, __less<size_t>());
+ _VSTD::sort((uintptr_t*)__first, (uintptr_t*)__last, __less<uintptr_t>());
}
template <class _Tp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92190.308002.patch
Type: text/x-patch
Size: 1322 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20201127/3bc59d42/attachment.bin>
More information about the libcxx-commits
mailing list