| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc++] Make <ranges> non-experimental When we ship LLVM 16, <ranges> won't be considered experimental anymore. We might as well do this sooner rather than later. Differential Revision: https://reviews.llvm.org/D132151 | 3 年前 | |
[libc++][test] Fix MSVC warnings with static_casts (#74962) Found while running libc++'s tests with MSVC's STL. * libcxx/test/std/algorithms/alg.modifying.operations/alg.unique/ranges_unique_copy.pass.cpp + Fix MSVC "warning C4389: '==': signed/unsigned mismatch". + This was x86-specific for me. The LHS is int and the RHS is size_t. We know the array's size, so static_cast<int> is certainly safe, and this matches the following numberOfProj comparisons. * libcxx/test/std/containers/sequences/insert_range_sequence_containers.h + Fix MSVC "warning C4267: 'argument': conversion from 'size_t' to 'const int', possible loss of data". + test_case.index is size_t: https://github.com/llvm/llvm-project/blob/b85f1f9b182234ba366d78ae2174a149e44d08c1/libcxx/test/std/containers/insert_range_helpers.h#L65-L68 + But the container's difference_type is int: https://github.com/llvm/llvm-project/blob/b85f1f9b182234ba366d78ae2174a149e44d08c1/libcxx/test/support/test_allocator.h#L65-L76 + I introduced an alias D to make the long line more readable. * libcxx/test/std/containers/unord/unord.map/eq.different_hash.pass.cpp * libcxx/test/std/containers/unord/unord.multimap/eq.different_hash.pass.cpp * libcxx/test/std/containers/unord/unord.multiset/eq.different_hash.pass.cpp * libcxx/test/std/containers/unord/unord.set/eq.different_hash.pass.cpp + Fix MSVC "warning C6297: Arithmetic overflow. Results might not be an expected value." + This warning is almost annoying enough to outright disable, but we use similar static_casts to deal with sign/truncation warnings elsewhere, because there's some value in ensuring that product code is clean with respect to these warnings. If there were many more occurrences, then disabling the warning would be appropriate. + Cleanup: Change 2 inconsistently unqualified occurrences of size_t to std::size_t. * libcxx/test/std/containers/views/mdspan/layout_stride/index_operator.pass.cpp + Fix MSVC "warning C4244: 'initializing': conversion from '__int64' to 'size_t', possible loss of data". + This was x86-specific for me. The args are indeed int64_t, and we're storing the result in size_t, so we should cast. * libcxx/test/std/ranges/range.utility/range.utility.conv/container.h + Fix MSVC "warning C4244: 'initializing': conversion from 'ptrdiff_t' to 'int', possible loss of data". + Fix MSVC "warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data". + We're initializing int size_, so we should explicitly cast from pointer subtraction and std::ranges::size. * libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared_for_overwrite.pass.cpp * libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared_for_overwrite.pass.cpp * libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique_for_overwrite.default_init.pass.cpp + Fix MSVC "warning C4309: 'initializing': truncation of constant value". + MSVC emits this warning because 0xDE is outside the range of char (signed by default in our implementation). * libcxx/test/support/concat_macros.h + Fix MSVC "warning C4244: 'argument': conversion from 'char16_t' to 'const char', possible loss of data". + Fix MSVC "warning C4244: 'argument': conversion from 'unsigned int' to 'const char', possible loss of data". + This code was very recently introduced by @mordante in #73395. | 2 年前 | |
[libc++] Qualifies size_t. This has been done using the following command find libcxx/test -type f -exec perl -pi -e 's|^([^/]+?)((?<!::)size_t)|\1std::\2|' \{} \; And manually removed some false positives in std/depr/depr.c.headers. The std module doesn't export ::size_t, this is a preparation for that module. Reviewed By: ldionne, #libc, EricWF, philnik Differential Revision: https://reviews.llvm.org/D146088 | 3 年前 | |
[libc++][ranges] implement std::ranges::unique{_copy} implement std::ranges::unique and std::ranges::unique_copy Differential Revision: https://reviews.llvm.org/D130404 | 3 年前 | |
[libc++][NFC] Use cpp17_output_iterator in tests. The renames the output_iterator to cpp17_output_iterator. These iterators are still used in C++20 so it's not possible to change the current type to the new C++20 requirements. This is done in a similar fashion as the cpp17_input_iterator. Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D117950 | 4 年前 | |
[libc++] Qualifies size_t. This has been done using the following command find libcxx/test -type f -exec perl -pi -e 's|^([^/]+?)((?<!::)size_t)|\1std::\2|' \{} \; And manually removed some false positives in std/depr/depr.c.headers. The std module doesn't export ::size_t, this is a preparation for that module. Reviewed By: ldionne, #libc, EricWF, philnik Differential Revision: https://reviews.llvm.org/D146088 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 |