[libc++] Revert "Protect users from relying on detail headers" & related changesThis commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,which were related to the original commit).
[libc++] Revert "Protect users from relying on detail headers" & related changesThis commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,which were related to the original commit). As landed, 5aaefa51 hadunintended consequences on some downstream bots and didn't have propercoverage upstream due to a few subtle things. Implementing this issomething we should do in libc++, however we'll first need to addressa few issues listed in https://reviews.llvm.org/D106124#3349710.Differential Revision: https://reviews.llvm.org/D120683
show more ...
[libcxx][modules] protects users from relying on detail headerslibc++ has started splicing standard library headers into much morefine-grained content for maintainability. It's very likely that ou
[libcxx][modules] protects users from relying on detail headerslibc++ has started splicing standard library headers into much morefine-grained content for maintainability. It's very likely that outdatedand naive tooling (some of which is outside of LLVM's scope) willsuggest users include things such as <__ranges/access.h> instead of<ranges>, and Hyrum's law suggests that users will eventually begin torely on this without the help of tooling. As such, this commitintends to protect users from themselves, by making it a hard error foranyone outside of the standard library to include libc++ detail headers.Differential Revision: https://reviews.llvm.org/D106124
[libc++] Move everything related solely to _LIBCPP_ASSERT to its own fileThis is the first step towards disentangling the debug mode and assertionsin libc++. This patch doesn't make any functional
[libc++] Move everything related solely to _LIBCPP_ASSERT to its own fileThis is the first step towards disentangling the debug mode and assertionsin libc++. This patch doesn't make any functional change: it simply moves_LIBCPP_ASSERT-related stuff to its own file so as to make it clear thatlibc++ assertions and the debug mode are different things. Future patcheswill make it possible to enable assertions without enabling the debugmode.Differential Revision: https://reviews.llvm.org/D119769
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.Now we'll notice if a header forgets to include this magic phrase.Differential Revision: https://reviews.llvm.org/D1188
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.Now we'll notice if a header forgets to include this magic phrase.Differential Revision: https://reviews.llvm.org/D118800
[libcxx] [Coroutines] Support noop_coroutine for GCCWe didn't support noop_coroutine for GCC in previous conforming patch.So that GCC couldn't use noop_coroutine() defined in <coroutine>. Andafte
[libcxx] [Coroutines] Support noop_coroutine for GCCWe didn't support noop_coroutine for GCC in previous conforming patch.So that GCC couldn't use noop_coroutine() defined in <coroutine>. Andafter this patch, GCC should be able to compile the whole <coroutine>header.Reviewed By: QuuxplusoneDifferential Revision: https://reviews.llvm.org/D116144
[libc++] Remove _LIBCPP_HAS_NO_SPACESHIP_OPERATORAll supported compilers support spaceship in C++20 nowadays.Differential Revision: https://reviews.llvm.org/D113938
[libcxx] [Coroutine] Conform Coroutine ImplementationSince coroutine is merged in C++ standard and the support for coroutineseems relatively stable. It's the time to move the implementation ofcor
[libcxx] [Coroutine] Conform Coroutine ImplementationSince coroutine is merged in C++ standard and the support for coroutineseems relatively stable. It's the time to move the implementation ofcoroutine out of the experimental directory and the std::experimentalnamespace. This patch creates header <coroutine> with conformedimplementation with C++ standard. To avoid breaking user's code toofast, the <experimental/coroutine> header is remained. Note that<experimental/coroutine> is deprecated and it would be removed inLLVM15.Reviewed By: Quuxplusone, ldionneDifferential Revision: https://reviews.llvm.org/D109433