TTobias Hieta[libc++] Add missing includes of <cstddef>
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc++] Revert "Protect users from relying on detail headers" & related changes This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710. Differential Revision: https://reviews.llvm.org/D120683 | 4 年前 | |
[libc++] Fix std::lower_bound with C++20-hostile iterators Reviewed By: EricWF, #libc Spies: sstefan1, libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D127577 | 4 年前 | |
[libc++] Make parameter names consistent and enforce the naming style using readability-identifier-naming Ensure that parameter names have the style __lower_case Reviewed By: ldionne, #libc Spies: aheejin, sstefan1, libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D129051 | 3 年前 | |
[libc++] Use bounded iterators in std::span when the debug mode is enabled Previously, we'd use raw pointers when the debug mode was enabled, which means we wouldn't get out-of-range checking with std::span's iterators. This patch introduces a new class called __bounded_iter which can be used to wrap iterators and make them carry around bounds-related information. This allows iterators to assert when they are dereferenced outside of their bounds. As a fly-by change, this commit removes the _LIBCPP_ABI_SPAN_POINTER_ITERATORS knob. Indeed, not using a raw pointer as the iterator type is useful to avoid users depending on properties of raw pointers in their code. This is an alternative to D127401. Differential Revision: https://reviews.llvm.org/D127418 | 3 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Revert "Protect users from relying on detail headers" & related changes This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710. Differential Revision: https://reviews.llvm.org/D120683 | 4 年前 | |
[libc++] Revert "Protect users from relying on detail headers" & related changes This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710. Differential Revision: https://reviews.llvm.org/D120683 | 4 年前 | |
[libc++] Fix std::lower_bound with C++20-hostile iterators Reviewed By: EricWF, #libc Spies: sstefan1, libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D127577 | 4 年前 | |
[libc++] Revert "Protect users from relying on detail headers" & related changes This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710. Differential Revision: https://reviews.llvm.org/D120683 | 4 年前 | |
[libc++] Revert "Protect users from relying on detail headers" & related changes This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710. Differential Revision: https://reviews.llvm.org/D120683 | 4 年前 | |
[libc++] Make parameter names consistent and enforce the naming style using readability-identifier-naming Ensure that parameter names have the style __lower_case Reviewed By: ldionne, #libc Spies: aheejin, sstefan1, libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D129051 | 3 年前 | |
[libc++] Add missing includes of <cstddef> (cherry picked from commit b1009bbd9e3d5acd85e92cb7f9a1109d2e72967c) | 3 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Make parameter names consistent and enforce the naming style using readability-identifier-naming Ensure that parameter names have the style __lower_case Reviewed By: ldionne, #libc Spies: aheejin, sstefan1, libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D129051 | 3 年前 | |
[libc++][NFC] Add missing includes | 4 年前 | |
[libc++] Add explicit to a bunch of internal detail ctors. Notably the following ctors remain non-explicit because they are used as implicit conversions in too many places: * __debug_less(_Compare&) * __map_iterator(_TreeIterator) * __map_const_iterator(_TreeIterator) * __hash_map_iterator(_HashIterator) * __hash_map_const_iterator(_HashIterator) Differential Revision: https://reviews.llvm.org/D119894 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Revert "Protect users from relying on detail headers" & related changes This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710. Differential Revision: https://reviews.llvm.org/D120683 | 4 年前 | |
[libc++] Add missing includes of <cstddef> (cherry picked from commit b1009bbd9e3d5acd85e92cb7f9a1109d2e72967c) | 3 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++][ranges] Finish LWG issues directly related to the One Ranges Proposal. - P1252 ("Ranges Design Cleanup") -- deprecate move_iterator::operator-> starting from C++20; add range comparisons to the <functional> synopsis. This restores move_iterator::operator-> that was incorrectly deleted in D117656; it's still defined in the latest draft, see http://eel.is/c++draft/depr.move.iter.elem. Note that changes to *_result types from 6.1 in the paper are no longer relevant now that these types are aliases; - P2106 ("Alternative wording for GB315 and GB316") -- add a few *_result types to the synopsis in <algorithm> (some algorithms are not implemented yet and thus some of the proposal still cannot be marked as done); Also mark already done issues as done (or as nothing to do): - P2091 ("Fixing Issues With Range Access CPOs") was already implemented (this patch adds tests for some ill-formed cases); - LWG 3247 ("ranges::iter_move should perform ADL-only lookup of iter_move") was already implemented; - LWG 3300 ("Non-array ssize overload is underconstrained") doesn't affect the implementation; - LWG 3335 ("Resolve C++20 NB comments US 273 and GB 274") was already implemented; - LWG 3355 ("The memory algorithms should support move-only input iterators introduced by P1207") was already implemented (except for testing). Differential Revision: https://reviews.llvm.org/D126053 | 3 年前 | |
[libc++][NFC] Add more tests to move_{iterator,sentinel}. More test coverage for the parts added by the One Ranges Proposal. Differential Revision: https://reviews.llvm.org/D124906 | 4 年前 | |
[libc++] Avoid a Microsoft SAL macro. Bug: https://github.com/llvm/llvm-project/issues/55195 Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D124695 | 4 年前 | |
[libc++] Make parameter names consistent and enforce the naming style using readability-identifier-naming Ensure that parameter names have the style __lower_case Reviewed By: ldionne, #libc Spies: aheejin, sstefan1, libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D129051 | 3 年前 | |
[libc++][NFC] Add missing includes | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Avoid a Microsoft SAL macro. Bug: https://github.com/llvm/llvm-project/issues/55195 Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D124695 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Revert "Protect users from relying on detail headers" & related changes This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710. Differential Revision: https://reviews.llvm.org/D120683 | 4 年前 | |
[libc++][ranges] Implement ranges::rotate. Also fix ranges::stable_sort and ranges::inplace_merge to support proxy iterators now that their internal implementations can correctly dispatch rotate. Differential Revision: https://reviews.llvm.org/D130758 (cherry picked from commit 36c746ca2d5b325a7ac64135c1ff8774c06ab34c) | 3 年前 | |
[libc++] Define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER whenever we enable warnings in the test suite This should make CI consistent on all the compilers we support. Most of this patch is working around various warnings emitted by GCC in our code base, which are now being shown when we compile the tests. After this patch, the whole test suite should be warning free on all compilers we support and test, except for a few warnings on GCC that we silence explicitly until we figure out the proper fix for them. Differential Revision: https://reviews.llvm.org/D120684 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI. All supported compilers that support C++20 now support concepts. So, remove _LIB_LIBCPP_HAS_NO_CONCEPTS in favor of _LIBCPP_STD_VER > 17. Similarly in the tests, remove // UNSUPPORTED: libcpp-no-concepts. Differential Revision: https://reviews.llvm.org/D121528 | 4 年前 | |
[libc++] Make the Debug mode a configuration-time only option The debug mode has been broken pretty much ever since it was shipped because it was possible to enable the debug mode in user code without actually enabling it in the dylib, leading to ODR violations that caused various kinds of failures. This commit makes the debug mode a knob that is configured when building the library and which can't be changed afterwards. This is less flexible for users, however it will actually work as intended and it will allow us, in the future, to add various kinds of checks that do not assume the same ABI as the normal library. Furthermore, this will make the debug mode more robust, which means that vendors might be more tempted to support it properly, which hasn't been the case with the current debug mode. This patch shouldn't break any user code, except folks who are building against a library that doesn't have the debug mode enabled and who try to enable the debug mode in their code. Such users will get a compile-time error explaining that this configuration isn't supported anymore. In the future, we should further increase the granularity of the debug mode checks so that we can cherry-pick which checks to enable, like we do for unspecified behavior randomization. Differential Revision: https://reviews.llvm.org/D122941 | 4 年前 |