| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clang supports coroutines in all dialects; Therefore libc++ should too,
otherwise the Clang extension is unusable.
I'm not convinced extending support to C++03 is a feasible long term
plan, since as the library grows to offer things like generators it
will be come increasingly difficult to limit the implementation to C++03.
However for the time being supporting C++03 isn't a big deal.
llvm-svn: 303963
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clang started providing -fcoroutines and defining __cpp_coroutines
way before it implemented the __builtin_coro_foo functions. This
means that simply checking if __cpp_coroutines is not a sufficient
way of detecting the actual feature.
This patch implements _LIBCPP_HAS_NO_COROUTINES which implements
a slightly more complex feature check. Specifically it requires
__cpp_coroutines >= 201703L, which only holds for Clang 5.0 built
after 2017/05/24.
llvm-svn: 303956
|
|
|
|
|
|
|
|
|
|
|
| |
The tests were previously guarded by #if defined(_LIBCPP_VER) || defined(_MSVC_STL_VER),
which is both incorrect (e.g. _LIBCPP_VERSION) and unneeded. Although the tests are
technically non-standard (yet) they are supported by both libc++ and MSVC's STL.
libstdc++ doesn't regularly use the test suite so I'm not concerned about guarding these
tests for them.
llvm-svn: 303953
|
|
|
|
| |
llvm-svn: 303951
|
|
|
|
| |
llvm-svn: 303947
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original issues were caused because <experimental/coroutine>
didn't correctly #ifdef out enough of the header, which caused incomplete
types to be used.
This patch fixes the `#if defined(__cpp_coroutines)` guard and re-adds
the headers to the module map.
It also uglifies some incorrectly non-reserved names.
llvm-svn: 303936
|
|
|
|
| |
llvm-svn: 303929
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D33388
llvm-svn: 303928
|
|
|
|
|
|
|
| |
Thanks to Casey Carter for pointing out the out-of-date tests and
implementation.
llvm-svn: 303900
|
|
|
|
| |
llvm-svn: 303899
|
|
|
|
|
|
|
|
|
|
|
| |
This patch updates the promise() member to match the current spec.
Specifically it removes the non-const overload and make the return
type of the const overload non-const.
This patch also makes the ASSERT_NOT_NOEXCEPT tests libc++ specific,
since other implementations may be free to strengthen the specification.
llvm-svn: 303895
|
|
|
|
|
|
|
|
|
|
| |
VSO#391542 "Types can't be convertible to nullptr_t"
Also put internal bug numbers on the workarounds in test_workarounds.h for correlation.
Differential Revision: https://reviews.llvm.org/D33290
llvm-svn: 303889
|
|
|
|
|
|
|
|
| |
VSO#109062 "Explicit template argument specification with empty template parameter pack expansion does not imply further empty pack expansion"
Differential Revision: https://reviews.llvm.org/D33214
llvm-svn: 303888
|
|
|
|
| |
llvm-svn: 303878
|
|
|
|
|
|
| |
couple days ago (r303268 & r303824)
llvm-svn: 303876
|
|
|
|
|
|
|
|
| |
Fixes PR27566.
Differential revision: https://reviews.llvm.org/D30837
llvm-svn: 303874
|
|
|
|
| |
llvm-svn: 303862
|
|
|
|
| |
llvm-svn: 303856
|
|
|
|
|
|
| |
unless modules are enabled
llvm-svn: 303838
|
|
|
|
|
|
| |
recent changes
llvm-svn: 303837
|
|
|
|
|
|
|
| |
This patch adds the library portions of the coroutines PDTS,
which should now be supported by Clang.
llvm-svn: 303836
|
|
|
|
| |
llvm-svn: 303835
|
|
|
|
| |
llvm-svn: 303833
|
|
|
|
| |
llvm-svn: 303824
|
|
|
|
|
|
| |
anything useful.
llvm-svn: 303675
|
|
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D33049
llvm-svn: 303466
|
|
|
|
|
|
| |
missed this when I implemented the rest of P0031R0
llvm-svn: 303281
|
|
|
|
|
|
| |
constructor to be constexpr. This only works when the contained type has a constexpr copy/move ctor.
llvm-svn: 303268
|
|
|
|
|
|
|
|
| |
integers, part 3/3.
Test the C++17 Core Language feature independently from other std::byte tests.
llvm-svn: 302946
|
|
|
|
|
|
|
|
|
| |
This C++17 Core Language feature isn't necessary when testing std::byte.
It's a minor convenience, but it limits test coverage to very new compilers.
This part activates the tests for more compilers.
llvm-svn: 302945
|
|
|
|
|
|
|
|
|
|
|
| |
This C++17 Core Language feature isn't necessary when testing std::byte.
It's a minor convenience, but it limits test coverage to very new compilers.
This part changes the code.
Fixes D32386.
llvm-svn: 302944
|
|
|
|
| |
llvm-svn: 302871
|
|
|
|
|
|
|
|
|
|
|
| |
This patch cleans up a number of issues reported by STL, including:
1) Fix duplicate is_convertible test.
2) Move non-standard reference_wrapper tests under test/libcxx
3) Fix assumption that sizeof(wchar_t) == 32 in the codecvt and
wstring_convert tests.
llvm-svn: 302870
|
|
|
|
|
|
|
|
| |
This patch removes the clear() member from <string_view>. The
modifier was removed from the TS before it ever landed in the standard.
There is no reason libc++ should be providing this method.
llvm-svn: 302869
|
|
|
|
| |
llvm-svn: 302865
|
|
|
|
| |
llvm-svn: 302864
|
|
|
|
| |
llvm-svn: 302862
|
|
|
|
|
|
|
|
|
| |
This patch attempts to make lookup_classname.pass.cpp usable against
other STL implementations by guarding the use of __regex_word. That being
said it seems likely that the test is still non-conforming due to how
libc++ handles the "w" character class.
llvm-svn: 302859
|
|
|
|
| |
llvm-svn: 302841
|
|
|
|
|
|
| |
added a few more tests.
llvm-svn: 302802
|
|
|
|
|
|
| |
Richard Smith says that using the namespace results in an ODR violation, but I disagree. Nevertheless, the struct works just as well.
llvm-svn: 302800
|
|
|
|
|
|
| |
covered it already. Just added comments to the tests. Thanks to K-ballo for the heads up.
llvm-svn: 302799
|
|
|
|
|
|
| |
covered it already. Just added comments to the tests
llvm-svn: 302798
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The following code is broken:
```
std::visit([]{});
```
Reviewers: EricWF
Reviewed By: EricWF
Differential Revision: https://reviews.llvm.org/D33090
llvm-svn: 302773
|
|
|
|
| |
llvm-svn: 302743
|
|
|
|
| |
llvm-svn: 302736
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some MinGW configurations use WinPThread instead of the native
threading interfaces. When this happens libc++ doesn't build because
it tries to use the wrong threading API.
This patch attempts to correctly detect and enable pthreads; Selecting
them when __MINGW32__ is defined and __has_include(<pthread.h>) is true.
I'm not sure if this works correctly 100% of the time but it seemed
like the most correct approach available.
llvm-svn: 302734
|
|
|
|
|
|
|
|
|
| |
This patch follows up on feedback received in the review for
D32988. Specifically that libc++ should not mess with the
__builtin namespace, and that libc++ should use __popcnt to implement
__pop_count under MSVC.
llvm-svn: 302731
|
|
|
|
| |
llvm-svn: 302728
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch refactors and tries to remove as much of the Windows support headers as possible. This is needed because they currently introduce super weird include cycles and dependencies between STL and libc headers.
The changes in this patch are:
* remove `support/win32/support.h` completely. The required parts have either been moved into `support/win32/msvc_support.h` (for `MSVC` only helpers not needed by Clang), or directly into their respective `foo.h` headers.
* Combine `locale_win32.h` and `locale_mgmt_win32.h` into a single headers, this header should only be included within `__locale` or `locale` to avoid include cycles.
* Remove the unneeded parts of `limits_win32.h` and re-name it to `limits_msvc_win32.h` since it's only needed by Clang.
I've tested this patch using Clang on Windows, but I suspect it might technically regress our non-existent support for MSVC. Is somebody able to double check?
This refactor is needed to support upcoming fixes to `<locale>` on Windows.
Reviewers: bcraig, rmaprath, compnerd, EricWF
Reviewed By: EricWF
Subscribers: majnemer, cfe-commits
Differential Revision: https://reviews.llvm.org/D32988
llvm-svn: 302727
|