MMark de Wever[libc++] Qualifies size_t.
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc++] Implement C++20's P0784 (More constexpr containers) This commit adds std::construct_at, and marks various members of std::allocator_traits and std::allocator as constexpr. It also adds tests and turns the existing tests into hybrid constexpr/runtime tests. Thanks to Richard Smith for initial work on this, and to Michael Park for D69803, D69132 and D69134, which are superseded by this patch. Differential Revision: https://reviews.llvm.org/D68364 | 5 年前 | |
[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++] Undeprecate the std::allocator<void> specialization While the std::allocator<void> specialization was deprecated by https://wg21.link/p0174#2.2, the *use* of std::allocator<void> by users was not. The intent was that std::allocator<void> could still be used in C++17 and C++20, but starting with C++20 (with the removal of the specialization), std::allocator<void> would use the primary template. That intent was called out in wg21.link/p0619r4#3.9. As a result of this patch, _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS will also not control whether the explicit specialization is provided or not. It shouldn't matter, since in C++20, one can simply use the primary template. Fixes http://llvm.org/PR50299 Differential Revision: https://reviews.llvm.org/D104323 | 5 年前 | |
Revert "[libc++] Remove extension to support allocator<const T>" This reverts commit 276ca873. That commit has quite a history at this point. It was first landed in dbc647643577, which broke std::shared_ptr<T const> and was reverted in 9138666f5. It was then re-applied in 276ca873, with the std::shared_ptr issue fixed, but it caused widespread breakage at Google (which suggests it would cause similar breakage in the wild too), so now I'm reverting again. Instead, I will add a escape hatch that vendors can turn on to enable the extension and perform a phased transition over one or two releases like we sometimes do when things become non-trivial. | 4 年前 | |
Revert "[libc++] Remove extension to support allocator<const T>" This reverts commit 276ca873. That commit has quite a history at this point. It was first landed in dbc647643577, which broke std::shared_ptr<T const> and was reverted in 9138666f5. It was then re-applied in 276ca873, with the std::shared_ptr issue fixed, but it caused widespread breakage at Google (which suggests it would cause similar breakage in the wild too), so now I'm reverting again. Instead, I will add a escape hatch that vendors can turn on to enable the extension and perform a phased transition over one or two releases like we sometimes do when things become non-trivial. | 4 年前 | |
[libc++] Granularize the rest of memory Reviewed By: ldionne, #libc Spies: vitalybuka, paulkirth, libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D132790 | 3 年前 | |
[libc++] Remove unnecessary main() function in .compile.pass.cpp and .verify.cpp tests We pretty consistently don't define those cause they are not needed, and it removes the potential pitfall to think that these tests are being run. This doesn't touch .compile.fail.cpp tests since those should be replaced by .verify.cpp tests anyway, and there would be a lot to fix up. As a fly-by, I also fixed a bit of formatting, removed a few unused includes and made some very minor, clearly NFC refactorings such as in allocator.traits/allocator.traits.members/allocate.verify.cpp where the old test basically made no sense the way it was written. Differential Revision: https://reviews.llvm.org/D146236 | 3 年前 | |
Revert "[libc++] Remove extension to support allocator<const T>" This reverts commit 276ca873. That commit has quite a history at this point. It was first landed in dbc647643577, which broke std::shared_ptr<T const> and was reverted in 9138666f5. It was then re-applied in 276ca873, with the std::shared_ptr issue fixed, but it caused widespread breakage at Google (which suggests it would cause similar breakage in the wild too), so now I'm reverting again. Instead, I will add a escape hatch that vendors can turn on to enable the extension and perform a phased transition over one or two releases like we sometimes do when things become non-trivial. | 4 年前 | |
[libc++] Remove unnecessary main() function in .compile.pass.cpp and .verify.cpp tests We pretty consistently don't define those cause they are not needed, and it removes the potential pitfall to think that these tests are being run. This doesn't touch .compile.fail.cpp tests since those should be replaced by .verify.cpp tests anyway, and there would be a lot to fix up. As a fly-by, I also fixed a bit of formatting, removed a few unused includes and made some very minor, clearly NFC refactorings such as in allocator.traits/allocator.traits.members/allocate.verify.cpp where the old test basically made no sense the way it was written. Differential Revision: https://reviews.llvm.org/D146236 | 3 年前 | |
[libc++] Undeprecate the std::allocator<void> specialization While the std::allocator<void> specialization was deprecated by https://wg21.link/p0174#2.2, the *use* of std::allocator<void> by users was not. The intent was that std::allocator<void> could still be used in C++17 and C++20, but starting with C++20 (with the removal of the specialization), std::allocator<void> would use the primary template. That intent was called out in wg21.link/p0619r4#3.9. As a result of this patch, _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS will also not control whether the explicit specialization is provided or not. It shouldn't matter, since in C++20, one can simply use the primary template. Fixes http://llvm.org/PR50299 Differential Revision: https://reviews.llvm.org/D104323 | 5 年前 |