Commit Graph

154 Commits

Author SHA1 Message Date
Eric Fiselier c45b673d5d Fix warnings in deque tests
llvm-svn: 242632
2015-07-19 00:31:54 +00:00
Eric Fiselier 80fe6bd142 Commit file missing from r242629
llvm-svn: 242630
2015-07-19 00:11:50 +00:00
Eric Fiselier 2decfad7c5 Fix warnings in array and assoc containers
llvm-svn: 242629
2015-07-18 23:56:04 +00:00
Eric Fiselier 203f687971 Cleanup warnings in test/std/depr
llvm-svn: 242627
2015-07-18 22:51:51 +00:00
Eric Fiselier 19fa337610 Fix warnings in test/std/algorithms
llvm-svn: 242626
2015-07-18 21:53:16 +00:00
Eric Fiselier b67e689f02 Fix unused variable warnings in atomic tests
llvm-svn: 242625
2015-07-18 21:40:37 +00:00
Eric Fiselier 5fd308971d Fix warnings in test/std/language.support
llvm-svn: 242624
2015-07-18 21:17:16 +00:00
Marshall Clow dd2b7a0a0e Fix up typos in a couple of tests; due to agressive short-circuiting, they never failed on clang or gcc, but MSVC whined. Patch by Andrew Parker.
llvm-svn: 242618
2015-07-18 18:24:15 +00:00
Eric Fiselier 980eda3fc2 Add missing instrumentation in vector::insert - Patch from Anna Zaks
This patch was reviewed as D10859. http://reviews.llvm.org/D10859

llvm-svn: 242617
2015-07-18 18:22:12 +00:00
Eric Fiselier 083abfb3f6 [libcxx] Get is_*_destructible tests passing in C++03.
Summary: This patch adds proper guards to the is_destructible tests depending on the standard version so that they pass in c++03.

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D10047

llvm-svn: 242612
2015-07-18 16:43:58 +00:00
Eric Fiselier 88558e22b0 Cleanup tests that fail in C++1z and with Clang 3.8
llvm-svn: 242581
2015-07-17 22:27:43 +00:00
Marshall Clow 9c9b0ec554 Include what we use, instead of letting them get pulled in implictly. This makes the tests work on VS. Thanks to STL for the report
llvm-svn: 242454
2015-07-16 22:13:26 +00:00
Marshall Clow 05fc0f25d6 Make sure that __libcpp_compressed_pair_imp default-constructs its' members, rather than value-initializing them. Fixes PR#24137
llvm-svn: 242377
2015-07-16 03:05:06 +00:00
Marshall Clow 5cbce174d9 Mark two tests as failing on clang 3.8 (they failed on 3.7, too)
llvm-svn: 242375
2015-07-16 02:44:33 +00:00
Eric Fiselier 16270a0b09 Remove non-ascii characters
llvm-svn: 242197
2015-07-14 20:45:48 +00:00
Eric Fiselier 5be45129a4 Implement n4169 - Add invoke function template
llvm-svn: 242195
2015-07-14 20:16:15 +00:00
Eric Fiselier 092c475e25 Fix PR24114 - std::atomic for non-Clang is not a literal type
Add _LIBCPP_CONSTEXPR to the implementation of __gcc_atomic_t.

llvm-svn: 242172
2015-07-14 17:50:27 +00:00
Marshall Clow 71ff7c3f0f Move bits from N4258. Mark vector's move-constructor unconditionally noexcept in C++1z
llvm-svn: 242148
2015-07-14 14:46:32 +00:00
Marshall Clow e3fbe1433b Implement the first part of N4258: 'Cleaning up noexcept in the Library'. This patch deals with swapping containers, and implements a more strict noexcept specification (a conforming extension) than the standard mandates.
llvm-svn: 242056
2015-07-13 20:04:56 +00:00
Eric Fiselier 2d15f15f28 [libcxx] LWG2420 bits for bind<void> - Patch from K-Ballo
Implemented LWG2420 bits for bind<void>

Review: http://reviews.llvm.org/D10997
llvm-svn: 241967
2015-07-10 23:29:18 +00:00
Marshall Clow bc4c89a977 The rest of N4279 and LWG#2464 - for unordered_map
llvm-svn: 241555
2015-07-07 05:45:35 +00:00
Marshall Clow 8aaf517db7 Implement N4279 and LWG#2664 for <map>. Reviewed as http://reviews.llvm.org/D10669
llvm-svn: 241539
2015-07-07 03:37:33 +00:00
Eric Fiselier 4cd59b3f49 Automatically detect and use clang verify in failure tests.
Automatically enable clang verify whenever the '-verify-ignore-unexpected' flag
is supported.
Failure tests are run using verify if they contain one or more "expected-*"
diagnostics tags. Otherwise they are run normally.

llvm-svn: 241492
2015-07-06 19:56:45 +00:00
Marshall Clow f43a42d53e Noticed that std::allocator<const T> was missing the definition for is_always_equal. Fixed this, and added a test for it.
llvm-svn: 241190
2015-07-01 21:23:40 +00:00
Marshall Clow f8457a0735 Add tests for LWG#2299. While doing so, I noticed that the tests we have for the transparent comparators don't actually call them. Fix those tests, too. Now one of them is failing, due to a missing const in <map>. Add that (twice). Next step is to do the same for <unordered_map>
llvm-svn: 241091
2015-06-30 18:15:41 +00:00
Marshall Clow 660dcd9168 Implement LWG#2407: 'packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit'
llvm-svn: 241068
2015-06-30 14:16:49 +00:00
Marshall Clow f69ae47128 Implement N4508: shared_mutex. Reviewed as http://reviews.llvm.org/D10480
llvm-svn: 241067
2015-06-30 14:04:14 +00:00
Ed Schouten e0cf3b9a3c Make support for thread-unsafe C functions optional.
One of the aspects of CloudABI is that it aims to help you write code
that is thread-safe out of the box. This is very important if you want
to write libraries that are easy to reuse. For CloudABI we decided to
not provide the thread-unsafe functions. So far this is working out
pretty well, as thread-unsafety issues are detected really early on.

The following patch adds a knob to libc++,
_LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS, that can be set to disable
thread-unsafe functions that can easily be avoided in practice. The
following functions are not thread-safe:

- <clocale>: locale handles should be preferred over setlocale().
- <cstdlib>: mbrlen(), mbrtowc() and wcrtomb() should be preferred over
  their non-restartable counterparts.
- <ctime>: asctime(), ctime(), gmtime() and localtime() are not
  thread-safe. The first two are also deprecated by POSIX.

Differential Revision:	http://reviews.llvm.org/D8703
Reviewed by:	marshall

llvm-svn: 240527
2015-06-24 08:44:38 +00:00
Marshall Clow 99f5fc937f Make seeking on an ostream that has eofbit set work correctly. Fixes PR#21361
llvm-svn: 240286
2015-06-22 15:01:21 +00:00
Marshall Clow 55112defb0 Fix PR#18843. Thanks to Howard for the fix
llvm-svn: 240136
2015-06-19 15:54:13 +00:00
Eric Fiselier b11df184ad Fix std::function allocator constructors in C++03.
The C++03 version of function tried to default construct the allocator
in the uses allocator constructors when no allocation was performed. These
constructors would fail to compile when used with allocators that had no
default constructor.

llvm-svn: 239708
2015-06-14 23:30:09 +00:00
Eric Fiselier d9ad0cbd70 Cleanup result_of tests and fix issues with the C++03 result_of.
The two main fixes this patch contains are:
- use __identity_t instead of common_type. common_type was used as an
  identity metafunction but the decay resulted in incorrect results.
- Pointers to free functions were not counted as functions. Remove the pointer
  before checking if a type is a function.

llvm-svn: 239668
2015-06-13 08:25:24 +00:00
Eric Fiselier 793f59e767 LWG2442: call_once() shouldn't DECAY_COPY(). Patch from K-Ballo.
This patch fixes LWG issue 2422 by removing the DECAY_COPY from call once.
The review can be found here: http://reviews.llvm.org/D10191

llvm-svn: 239654
2015-06-13 02:23:00 +00:00
Eric Fiselier 8aba6a6db4 Refactor is_member_function_pointer to use is_function and not __member_function_traits.
Replacing the dependancy on __member_function_traits with is_function allows
is_member_function_pointer to work more often. In particular it allows it to
work when we don't have variadic templates but the function has an arity > 3.

llvm-svn: 239649
2015-06-13 00:33:13 +00:00
Eric Fiselier b3ec43d78a Fix PR23293 - Do not unlock shared state before notifying consumers.
Within the shared state methods do not unlock the lock guards manually. This
could cause a race condition where the shared state is destroyed before the
method is complete.

llvm-svn: 239577
2015-06-12 00:41:34 +00:00
Marshall Clow 767c45719f Change #ifdefs in test to UNSUPPORTED. No functionality change in the tests
llvm-svn: 239562
2015-06-11 21:47:39 +00:00
Marshall Clow b41e76bb0b Fix PR#23767. Add tests for iterator invalidation for deque::erase/pop_front/pop_back
llvm-svn: 239196
2015-06-05 22:34:19 +00:00
Marshall Clow 979550f221 While applying N4258, I forgot about LWG#2455, which modified the modifications. Correct those - h/t: Howard
llvm-svn: 239004
2015-06-04 02:05:41 +00:00
Marshall Clow a8ae392718 More N4258 changes. This time vector's constructors
llvm-svn: 238990
2015-06-04 00:10:20 +00:00
Marshall Clow cbf166a2b9 More of N4258 implementation. Mark all of our test_allocators as noexcept constructible. Make the constructors for basic_string noexcept all the time (under C++14). Update tests to reflect the new world order. More to come.
llvm-svn: 238957
2015-06-03 19:56:43 +00:00
Marshall Clow 2abfcd5606 Add 'is_always_equal' tests for scoped_allocator. Found that I had typed '||' where I meant '&&' in the code; fixed that, too
llvm-svn: 238931
2015-06-03 16:15:55 +00:00
Marshall Clow 31a4731370 Implement the first part of N4258 - allocator_traits<X>::is_always_equal. Also fixes PR#23723
llvm-svn: 238848
2015-06-02 16:34:03 +00:00
Marshall Clow 89102f0fa9 Implement uncaught_exceptions() using the newly added hooks in libc++abi, when available
llvm-svn: 238846
2015-06-02 15:33:38 +00:00
Eric Fiselier a84544ac7a Add TODO items and remove use of 'noexcept' in C++03 test.
llvm-svn: 238802
2015-06-02 01:25:34 +00:00
Marshall Clow a7fb9a041d Fix PR#23647 - make_shared<volatile bool> - second try
llvm-svn: 238370
2015-05-27 22:44:47 +00:00
Marshall Clow 188b98b505 Revert 238354 while I figure out what broke in weak_ptr
llvm-svn: 238355
2015-05-27 20:36:14 +00:00
Marshall Clow 263a0f7681 Fix PR#23647 - make_shared<volatile bool>
llvm-svn: 238354
2015-05-27 20:15:33 +00:00
Eric Fiselier 0961f6cc21 Get thread sleep_for test passing in C++03
llvm-svn: 238273
2015-05-27 01:09:51 +00:00
Eric Fiselier 3a8fa93ae0 Cleanup move/forward tests and remove references to __rv.
llvm-svn: 238270
2015-05-27 00:51:08 +00:00
Marshall Clow cd6f7f9d80 Fix broken test I just added
llvm-svn: 238234
2015-05-26 19:17:09 +00:00