Marshall Clow
8d221b40a7
Add missing include to test. NFC
...
llvm-svn: 349639
2018-12-19 16:39:04 +00:00
Eric Fiselier
3e5d847fa0
Tolerate Clangs new static_assert messages
...
llvm-svn: 349189
2018-12-14 20:42:36 +00:00
Marshall Clow
d850388710
One more local type warning removed from the tests. NFC
...
llvm-svn: 344421
2018-10-12 21:59:32 +00:00
Eric Fiselier
a60d7fac09
Add diagnostics for min/max algorithms when a InputIterator is used.
...
These algorithms require a ForwardIterator or better. Ensure
we diagnose the contract violation at compile time instead of
of silently doing the wrong thing.
Further algorithms will be audited in upcoming patches.
llvm-svn: 340426
2018-08-22 17:47:13 +00:00
Stephan T. Lavavej
ad9545eb30
[libcxx] [test] Fix whitespace, NFC.
...
test/std almost always uses spaces; now it is entirely tab-free.
llvm-svn: 329978
2018-04-12 23:56:22 +00:00
Stephan T. Lavavej
9e5283f27f
[libcxx] [test] Use TEST_COMPILER_C1XX.
...
Also TEST_COMPILER_CLANG in one place. (More could be changed.)
llvm-svn: 329977
2018-04-12 23:56:17 +00:00
Stephan T. Lavavej
6b1ae9b854
[libcxx] [test] Strip trailing whitespace, NFC.
...
llvm-svn: 324959
2018-02-12 22:54:35 +00:00
Eric Fiselier
f892166a1d
Work around GCC constexpr initialization bug
...
llvm-svn: 324165
2018-02-03 01:48:21 +00:00
Peter Collingbourne
939b16233b
Fix the BinaryPredicate form of std::is_permutation to not rely on operator==
...
According to [1], forms 2 and 4 of std::is_permutation should use the passed in
binary predicate to compare elements. operator== should only be used for forms
1 and 3 which do not take a binary predicate.
This CL fixes forms 2 and 4 which relied on operator== for some comparisons.
[1] http://en.cppreference.com/w/cpp/algorithm/is_permutation
Patch by Thomas Anderson!
Differential Revision: https://reviews.llvm.org/D42518
llvm-svn: 323563
2018-01-26 21:23:27 +00:00
Marshall Clow
8da1a487ae
Last batch of P0202 constexpr additions: includes/set_intersection/exchange
...
llvm-svn: 323159
2018-01-22 23:10:40 +00:00
Marshall Clow
e8ea8296fc
Another batch of P0202 constepr algirithms. remove/remove_if/remove_copy/remove_copy_if/reverse_copy, and tests (commented out) for rotate_copy, because that depends on std::copy
...
llvm-svn: 323152
2018-01-22 21:43:04 +00:00
Marshall Clow
1b9a4ffd6b
Still more P0202 constexpr-ifying. This batch is: for_each/for_each_n/lexicographical_compare
...
llvm-svn: 323147
2018-01-22 20:44:33 +00:00
Marshall Clow
cbe768ec69
Add (commented out) constexpr tests for copy/copy_backwards/copy_if/copy_n. These will be enabled when that part of P0202 is implemented. NFC at this time.
...
llvm-svn: 323137
2018-01-22 18:38:18 +00:00
Marshall Clow
ac471d6db2
Really comment out the constexpr tests.
...
llvm-svn: 323072
2018-01-22 01:51:49 +00:00
Marshall Clow
85642c2bea
implement (but leave commented out) the constexpr tests from P0202 for std::merge. merge requires std::copy, which isn't constexpr yet.
...
llvm-svn: 323070
2018-01-22 00:11:44 +00:00
Marshall Clow
4bfb9313c1
More P0202 constexpr work. This commit adds fill/fill_n/generate/generate_n/unique/unique_copy. I removed a specialization of fill_n that recognized when we were dealing with raw pointers and 1 byte trivially-assignable types and did a memset, because the compiler will do that optimization for us.
...
llvm-svn: 323050
2018-01-20 20:14:32 +00:00
Marshall Clow
12c7423ff9
More P0202 constexpr-ifying in <algorithm>. This commit handles replace/replace_if/replace_copy/replace_copy_if.
...
llvm-svn: 322975
2018-01-19 18:07:29 +00:00
Marshall Clow
99894b61ba
More P0202 constexpr-ifying in <algorithm>. This commit handles 'transform'.
...
llvm-svn: 322970
2018-01-19 17:45:39 +00:00
Eric Fiselier
decf22e50f
Fix most GCC test failures.
...
This patch fixes almost all currently failing tests when
using GCC ToT.
The specific changes are:
(A) Workaround gcc.gnu.org/PR83921 which rejects variables w/o initializers
in constexpr contexts -- even when the variable is an empty class. This
bug has been worked around at all callsites by adding an initializer.
Additionally a new test, constexpr_init.pass.cpp, has been added to
test that Clang doesn't suffer from these bugs.
(B) Fix streambuf.assign/swap.pass.cpp. This test was never actually
calling the swap method as intended. In fact, the swap function it
intended to call was ill-formed when instantiated. GCC diagnosed
this ill-formedness w/o needing an instantiation.
(C) size_delete11.pass.cpp was fixed by adding c++2a to the list of
unsupported dialects.
llvm-svn: 322810
2018-01-18 03:41:06 +00:00
Marshall Clow
12f0a77902
More constexpr algorithms from P0202. search/search_n
...
llvm-svn: 322566
2018-01-16 15:48:27 +00:00
Marshall Clow
d57c03ddca
More constexpr algorithms from P0202: lower_bound, upper_bound, equal_range, binary_search
...
llvm-svn: 322529
2018-01-16 02:34:41 +00:00
Marshall Clow
a38c495f22
Actually CALL the constexpr tests.
...
llvm-svn: 322528
2018-01-16 02:11:13 +00:00
Marshall Clow
6538e28d5d
More constexpr (re P0202) - equal and mismatch
...
llvm-svn: 322527
2018-01-16 02:04:10 +00:00
Marshall Clow
da97ec6c10
Fix constexpr failure on C++11-based buildbots.
...
llvm-svn: 322507
2018-01-15 19:59:09 +00:00
Marshall Clow
056f15e3c5
More constexpr from P0202. count and count_if. Also fix a comment that Morwenn noted.
...
llvm-svn: 322506
2018-01-15 19:40:34 +00:00
Marshall Clow
404ee020f0
Some of the tests from earlier today had 'int' as the return type when it should have been 'bool'. Fix that. It doesn't change the behavior of any of the tests, but it's more accurate.
...
llvm-svn: 322505
2018-01-15 19:32:32 +00:00
Marshall Clow
8694428e36
More P0202 constexpr-ifying. All the find_XXX algorithms in this commit.
...
llvm-svn: 322504
2018-01-15 19:26:05 +00:00
Marshall Clow
674f9128b7
partition_point gets the P0202 treatment
...
llvm-svn: 322493
2018-01-15 17:53:34 +00:00
Marshall Clow
706ffef713
More constexpr algorithms from P0202. any_of/all_of/none_of.
...
llvm-svn: 322492
2018-01-15 17:20:36 +00:00
Marshall Clow
49c7643c39
First part of P0202: Adding constexpr modifiers to functions in <algorithm> and <utility>. This commit is all the is_XXX algorithms.
...
llvm-svn: 322489
2018-01-15 16:16:32 +00:00
Marshall Clow
6b40646bec
Fix misspelled macro name - thanks to andrew@ispras.ru for the catch
...
llvm-svn: 322196
2018-01-10 16:25:04 +00:00
Marshall Clow
d835e59211
Add the C++17 extensions to std::search. Include the default searcher, but not the Boyer-Moore or Boyer-Moore-Horspool searcher (yet). BUT put the BM and BMH tests in place, marked to XFAIL. The other searchers will follow soon
...
llvm-svn: 322019
2018-01-08 19:18:00 +00:00
Stephan T. Lavavej
79e0733c20
[libcxx] [test] Fix MSVC warnings, null pointer deref.
...
test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp
Silence MSVC warning C4244. This is expected when passing
floating-point values for size.
test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp
test/std/utilities/template.bitset/bitset.members/to_ulong.pass.cpp
Avoid MSVC "warning C4293: '<<': shift count negative or too big,
undefined behavior". MSVC sees (1ULL << N) and warns - being guarded
by const bool canFit is insufficient. A small change to the code
avoids the warning without the need for a pragma.
Remove a spurious printf() declaration from to_ullong.pass.cpp.
Change ULL to UL in to_ulong.pass.cpp. The ULL suffix was
probably copy-pasted.
test/std/utilities/tuple/tuple.general/ignore.pass.cpp
Use LIBCPP_STATIC_ASSERT for consistency with other files.
test/support/container_test_types.h
Fix a null pointer dereference, found by MSVC /analyze
warning C6011 "Dereferencing NULL pointer 'm_expected_args'."
Fixes D41030.
llvm-svn: 320535
2017-12-13 00:51:27 +00:00
Marshall Clow
feb8343281
Fix PR#35948: generate_n does not accept floating point Size arguments.
...
llvm-svn: 319675
2017-12-04 18:59:14 +00:00
Billy Robert O'Neal III
ba40b0566f
Change (void) casts to TEST_IGNORE_NODISCARD, as requested by Eric. Reviewed as https://reviews.llvm.org/D40065
...
llvm-svn: 318804
2017-11-21 21:37:26 +00:00
Billy Robert O'Neal III
1c240a89ff
Tolerate even more [[nodiscard]] in the STL. Reviewed as https://reviews.llvm.org/D39080
...
llvm-svn: 318277
2017-11-15 07:45:07 +00:00
Marshall Clow
d842505b9b
Mark test as unsupported on C++98/03, since it uses move_iterator
...
llvm-svn: 316917
2017-10-30 16:07:59 +00:00
Marshall Clow
05da5b0205
Fix PR#35119 : set_union misbehaves with move_iterators. Thanks to Denis Yaroshevskiy for both the bug report and the fix.
...
llvm-svn: 316914
2017-10-30 15:50:00 +00:00
Marshall Clow
589453458d
Fix test for C++03
...
llvm-svn: 311967
2017-08-29 01:10:51 +00:00
Marshall Clow
a763b36ff4
Fix PR31166: std::inplace_merge seems to be unstable. Thanks to Jan Wilken Dörrie for the suggested fix.
...
llvm-svn: 311952
2017-08-28 23:16:13 +00:00
Stephan T. Lavavej
9ea675ef8c
[libcxx] [test] Change comments to say C++ instead of c++. NFC.
...
This makes them consistent (many comments already used uppercase).
The special REQUIRES, UNSUPPORTED, and XFAIL comments are excluded from this change.
llvm-svn: 309468
2017-07-29 00:55:35 +00:00
Stephan T. Lavavej
4159db7698
[libcxx] [test] Untabify, NFC.
...
llvm-svn: 309464
2017-07-29 00:55:10 +00:00
Stephan T. Lavavej
5984426f91
[libcxx] [test] Strip trailing whitespace. NFC.
...
llvm-svn: 305848
2017-06-20 21:00:02 +00:00
Marshall Clow
d5c65ffa8d
Add non-parallel version of for_each_n (+tests) from the Parallelism TS
...
llvm-svn: 303833
2017-05-25 02:29:54 +00:00
Stephan T. Lavavej
6081edc9d0
[libcxx] [test] Strip trailing whitespace. NFC.
...
llvm-svn: 302105
2017-05-04 01:43:58 +00:00
Eric Fiselier
ddda456a76
Cleanup _LIBCPP_HAS_NO_<c++11-feature> in algorithm
...
llvm-svn: 300625
2017-04-18 23:26:47 +00:00
Marshall Clow
315cd1fec9
Update the algorithm tests to not use the (deprecated) function binders. No functional change.
...
llvm-svn: 298618
2017-03-23 16:13:50 +00:00
Marshall Clow
c53e96cb07
Use 'REQUIRES: c++98 || c++03 || c++11 || c++14' instead of the deprecated 'REQUIRES-ANY: c++98, c++03, c++11, c++14'
...
llvm-svn: 298600
2017-03-23 14:20:43 +00:00
Marshall Clow
0f37a41029
Remove random_shuffle in C++17. Please use shuffle instead. If you have to, you cant get it back by defining _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE before including any libc++ headers.
...
llvm-svn: 298597
2017-03-23 13:43:37 +00:00
Marshall Clow
4513057d66
Stop using random_shuffle in the libc++ test suite. It's going to be removed in c++17. Use shuffle() instead. No change to libc++, just the tests.
...
llvm-svn: 294328
2017-02-07 18:41:25 +00:00