Eric Fiselier
0751cc188f
Prevent failures by marking Clock::is_steady tests as UNSUPPORTED: asan.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275753 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 02:29:33 +00:00
Eric Fiselier
9ae7274ea5
Add includes in test. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275751 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 02:05:31 +00:00
Eric Fiselier
c79e8b692d
Suppress warning in make_from_tuple tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275748 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 01:52:46 +00:00
Eric Fiselier
5839fedf28
Implement C++17 tuple bits. Including apply and make_from_tuple.
...
This patch upgrades <tuple> to be C++17 compliant by implementing:
* tuple_size_v: This was forgotten when implementing the other _v traits.
* std::apply: This was added via LFTS v1 in p0220r1.
* std::make_from_tuple: This was added in p0209r2.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275745 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 00:35:56 +00:00
Eric Fiselier
3e732e94ae
Fix std::experimental::optional tests. Patch from Casey Carter.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275732 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-17 20:32:30 +00:00
Marshall Clow
211f9a485c
Add more tests for LWG#2582. No code changes needed, just tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275211 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-12 20:15:46 +00:00
JF Bastien
f6752747db
libc++: name anonymous structs
...
As discussed in http://reviews.llvm.org/D22073
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275210 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-12 20:14:52 +00:00
Marshall Clow
3f5435853f
Add tests for the meta.unary.props that do not require a complete type. This is part of LWG#2582
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275184 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-12 15:50:53 +00:00
Marshall Clow
51d7e8e381
Always use the allocator to construct/destruct elements of a deque/vector. Fixes PR#28412. Thanks to Jonathan Wakely for the report.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275105 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-11 21:38:08 +00:00
Eric Fiselier
45e9a936b6
Allow is_swappable to SFINAE on deleted/ambiguous swap functions
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@275094 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-11 19:57:13 +00:00
Marshall Clow
faa37d5de6
Fix typo in #ifdef; leave tests commented out b/c gcc 4.8 harks on them.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274882 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-08 16:59:54 +00:00
Manman Ren
8e83446812
Revert r274605 due to bot failure: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/244/
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274651 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06 18:24:53 +00:00
Marshall Clow
8668189a1a
Fix typo in #ifdef, and re-enable tests now that the green-dragon bots are no more
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274605 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06 05:28:44 +00:00
Eric Fiselier
990090f2ad
Handle std::get<T>(...) for std::tuple<>
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274422 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-02 03:46:08 +00:00
Eric Fiselier
22c3e76205
Rewrite std::get<Type>(...) helper using constexpr functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274418 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-02 03:18:30 +00:00
Eric Fiselier
5fb1e0ab01
Cleanup SFINAE in tuple, and add tests for reference assignment
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274414 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-02 01:25:46 +00:00
Eric Fiselier
cebaf5cbf8
Make tuple_constructible and family lazy again.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274413 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-02 00:58:17 +00:00
Eric Fiselier
053859ffc6
Flatten the tuple_element and __make_tuple_types implementations.
...
This patch attempts to improve the QoI of std::tuples tuple_element and
__make_tuple_types helpers. Previously they required O(N) instantiations,
one for every element in the tuple
The new implementations are O(1) after __tuple_indices<Id...> is created.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274330 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-01 03:54:54 +00:00
Marshall Clow
1a93312404
Fix static assert problem on gcc; remove XFAILs that I put in in r274250
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274285 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 22:05:45 +00:00
Eric Fiselier
3efb2c901e
Fix C++03 build.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274274 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 20:46:58 +00:00
Marshall Clow
0b02cf8cf1
Implement LWG#2688: 'clamp misses preconditions and has extraneous condition on result'. We already did this, just added tests
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274252 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 17:52:51 +00:00
Marshall Clow
a0f496b989
Temporarily XFAIL the incomplete type tests for GCC while I figure out why adding a static_assert in r274235 broken them
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274250 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 17:49:36 +00:00
Marshall Clow
256814f751
Implement LWG#2684: 'priority_queue lacking comparator typedef'. We already did this, just added tests
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274243 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 16:03:50 +00:00
Marshall Clow
f0419f1dcc
Implement LWG#2596: 'vector::data() should use addressof'
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274241 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 15:50:55 +00:00
Marshall Clow
ca894508f9
Implement LWG#2441: 'Exact-width atomic typedefs should be provided'
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274236 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 15:28:38 +00:00
Marshall Clow
0c99f18af4
Implement LWG#2436: 'Comparators for associative containers should always be CopyConstructible'
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274235 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 15:11:53 +00:00
Eric Fiselier
b0ee61352f
Make futures.overview enum tests more portable. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274211 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 05:00:32 +00:00
Eric Fiselier
0fc5603d78
Make std::array typedef tests more portable.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274210 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 04:54:00 +00:00
Eric Fiselier
c848cefa27
Fix ::reference typedef in insert iterators.
...
Since at least the C++11 standard insert iterators are specified
as having ::reference typedef void. Libc++ was not doing that.
This patch corrects the typedef.
This patch changes the std::iterator base class of insert_iterator,
front_insert_iterator and back_insert_iterator. This should not
be an ABI breaking change.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274209 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 04:40:50 +00:00
Eric Fiselier
8db06d71c2
Make instreambuf.iterator/types.pass.cpp more portable.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274207 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 04:31:09 +00:00
Eric Fiselier
68d0f230e9
Fix use of terse static assert. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274206 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 04:29:12 +00:00
Eric Fiselier
16715b9a88
Fix unary_function inheritance assumption. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274205 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 04:28:12 +00:00
Eric Fiselier
eb4c5e90a7
Fix unreferenced parameter warning. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274204 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 04:22:58 +00:00
Eric Fiselier
3a60979362
Avoid applying unary minus to unsigned integers. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274203 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-30 04:21:52 +00:00
Akira Hatanaka
70bf1c2280
[libcxx] Fix a bug in strstreambuf::overflow.
...
The end pointer should point to one past the end of the newly allocated
buffer.
rdar://problem/24265174
Differential Revision: http://reviews.llvm.org/D20334
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@274132 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-29 15:26:13 +00:00
Eric Fiselier
83d7ca9ea5
Implement P0163r0. Add shared_ptr::weak_type.
...
This patch adds the weak_type typedef in shared_ptr. It is available in
C++17 and newer.
This patch also updates the _LIBCPP_STD_VER and TEST_STD_VER macros to
have the value of 16, since 2016 is the current year.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273839 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 01:02:43 +00:00
Eric Fiselier
5781358757
Implement p0337r0. Delete operator= for polymorphic_allocator.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273838 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 00:55:25 +00:00
Eric Fiselier
715ca51666
Implement P0358r1. Fixes for not_fn.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273837 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 00:40:41 +00:00
Eric Fiselier
c297a25c55
Fix C++03 failure in enable_shared_from_this test
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273836 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 00:38:28 +00:00
Eric Fiselier
7838768593
Fix PR27115 - enable_shared_from_this does not work as a virtual base class.
...
See https://llvm.org/bugs/show_bug.cgi?id=27115
The problem was that the conversion from
'const enable_shared_from_this<T>*' to 'const T*' didn't work if
T inherited enable_shared_from_this as a virtual base class. The fix
is to take the original pointer passed to shared_ptr's constructor in the
__enable_weak_this method and perform an upcast to 'const T*' instead of
performing a downcast from the enable_shared_from_this base.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273835 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 23:56:32 +00:00
Eric Fiselier
7a317cec51
Fix C++03 build
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273832 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 23:18:23 +00:00
Eric Fiselier
e7aabbb6c6
Fix PR28079 - std::wstring_convert move constructor broken.
...
The move constructor for wstring_convert accidentally copied the state member
into the converted count member in the move constructor. This patch fixes
the typo.
While working on this I discovered that wstring_convert doesn't actually
provide a move constructor according to the standard and therefore this
constructor is a libc++ extension. I'll look further into whether libc++ should
provide this constructor at all. Neither libstdc++ or MSVC's STL provide it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273831 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 22:56:26 +00:00
Eric Fiselier
abd892af3a
Implement LWG 2488 - Make the placeholders constexpr.
...
This patch makes the bind placeholders in std::placeholders both (1) const and
(2) constexpr (See below).
This is technically a breaking change for any code using the placeholders
outside of std::bind and depending on them being non-const. However I don't
think this will break any real world code.
(1) Previously the placeholders were non-const extern globals in all
dialects. This patch changes these extern globals to be const in all dialects.
Since the cv-qualifiers don't participate in name mangling for globals this
is an ABI compatible change.
(2) Make the placeholders constexpr in C++11 and beyond. Although LWG 2488 only
applies to C++17 I don't see any reason not to backport this change.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273824 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 21:01:34 +00:00
Eric Fiselier
5078baa9e0
Make default_noexcept.pass.cpp container tests more portable. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273823 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 20:21:22 +00:00
Eric Fiselier
47920eb75e
Work around MSVC bug in atomics.types.generic/address.pass.cpp test. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273822 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 19:59:11 +00:00
Eric Fiselier
a8c717009e
Use L"cat" L"dog" when concatenating string literals. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273821 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 19:53:46 +00:00
Eric Fiselier
256f000cdc
Add array bounds assertions to satisfy MSVC's /analyze flag. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273820 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 19:48:29 +00:00
Eric Fiselier
bbd1c53610
Avoid narrowing conversions in quoted test. Patch from STL@microsoft.com
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273818 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-26 19:37:23 +00:00
Eric Fiselier
8d2b31567c
Finish converting list _LIBCPP_DEBUG tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273394 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 08:47:43 +00:00
Eric Fiselier
111c696838
Cleanup _LIBCPP_DEBUG tests in std::list. More to come.
...
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273393 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 08:01:27 +00:00