Eric Fiselier
e7154709e0
Implement C++17 std::sample.
...
This patch implements the std::sample function added to C++17 from LFTS. It
also removes the std::experimental::sample implementation which now forwards
to std::sample.
llvm-svn: 279948
2016-08-28 22:14:37 +00:00
Eric Fiselier
040411762f
Mark LWG 2716 as complete - shuffle and sample disallows lvalue URNGs.
...
Libc++'s implementation of shuffle and sample already support lvalue and rvalue
RNG's. This patch adds tests for both categories and marks the issue as complete.
This patch also contains drive-by change for std::experimental::sample which
improves the diagnostics produced when the correct iterator categories are
not supplied.
llvm-svn: 279947
2016-08-28 21:55:00 +00:00
Eric Fiselier
1662951974
Fix portability issues in <random> tests. Patch from STL@microsoft.com
...
llvm-svn: 276585
2016-07-24 23:36:18 +00:00
Marshall Clow
e46c0885ff
Implement LWG#2688: 'clamp misses preconditions and has extraneous condition on result'. We already did this, just added tests
...
llvm-svn: 274252
2016-06-30 17:52:51 +00:00
Eric Fiselier
2e0e3df9da
Add array bounds assertions to satisfy MSVC's /analyze flag. Patch from STL@microsoft.com
...
llvm-svn: 273820
2016-06-26 19:48:29 +00:00
Eric Fiselier
56f23a3f7f
Move remaining _LIBCPP_VERSION tests into test/libcxx
...
llvm-svn: 273367
2016-06-22 02:23:22 +00:00
Eric Fiselier
f2f2a6395f
Replace __cplusplus comparisons and dialect __has_feature checks with TEST_STD_VER.
...
This is a huge cleanup that helps make the libc++ test suite more portable.
Patch from STL@microsoft.com . Thanks STL!
llvm-svn: 272716
2016-06-14 21:31:42 +00:00
Asiri Rathnayake
981986cdfc
[libcxx] Fix c++98 test failures.
...
Adds XFAIL/UNSUPPORTED lit tags as appropriate. Gets a clean test run
for -std=c++98 on Fedora 20.
NFC.
llvm-svn: 271741
2016-06-03 21:40:03 +00:00
Eric Fiselier
d04c685168
Remove trailing whitespace in test suite. Approved by Marshall Clow.
...
llvm-svn: 271435
2016-06-01 21:35:39 +00:00
Eric Fiselier
7626f778a5
Remove names of unreferenced parameters. Patch from STL@microsoft.com
...
llvm-svn: 267852
2016-04-28 03:17:56 +00:00
Eric Fiselier
0d62791983
Add braces, move braces, and rename variables to avoid shadowing. Patch from STL@microsoft.com
...
llvm-svn: 267844
2016-04-28 02:45:11 +00:00
Marshall Clow
146c14ac33
Implement P0025R0: 'An algorithm to clamp a value between a pair of boundary values' for C++17
...
llvm-svn: 262871
2016-03-07 22:43:49 +00:00
Marshall Clow
40631133b4
Change some #ifdefs to #if - thanks to Dexon for thge catch.
...
llvm-svn: 243641
2015-07-30 13:56:00 +00:00
Marshall Clow
adfdae18c8
Fix a self-move bug in inplace_merge. Thanks to Ted and Dexon for the report and the suggested fix.
...
llvm-svn: 243530
2015-07-29 16:25:45 +00:00
Eric Fiselier
19fa337610
Fix warnings in test/std/algorithms
...
llvm-svn: 242626
2015-07-18 21:53:16 +00:00
Marshall Clow
0b0671ae36
Fix for LWG Issue 2369: constexpr max(initializer_list) vs max_element
...
llvm-svn: 236952
2015-05-10 13:53:31 +00:00
Marshall Clow
5f15a8b959
Need to wrap a bit in an ifdef, since there are no initializer_lists in C++03
...
llvm-svn: 228840
2015-02-11 15:48:21 +00:00
Marshall Clow
002144f61d
Fix PR 22541: When values are equal, minmax should return the rightmost one in the initializer_list
...
llvm-svn: 228839
2015-02-11 15:41:34 +00:00
Eric Fiselier
51544023a9
[libcxx] Properly convert the count arguments to the *_n algorithms before use.
...
Summary:
The requirement on the `Size` type passed to *_n algorithms is that it is convertible to an integral type. This means we can't use a variable of type `Size` directly. Instead we need to convert it to an integral type first. The problem is finding out what integral type to convert it to. `__convert_to_integral` figures out what integral type to convert it to and performs the conversion, It also promotes the resulting integral type so that it is at least as big as an integer. `__convert_to_integral` also has a special case for converting enums. This should only work on non-scoped enumerations because it does not apply an explicit conversion from the enum to its underlying type.
Reviewers: chandlerc, mclow.lists
Reviewed By: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D7449
llvm-svn: 228704
2015-02-10 16:46:42 +00:00
Dimitry Andric
7e187f1be9
Test commit: remove whitespace at EOL.
...
llvm-svn: 228280
2015-02-05 07:26:14 +00:00
Marshall Clow
b9595b79f2
Fix PR#22433. The algorithm is_partitioned was testing an item in the middle of the sequence twice.
...
llvm-svn: 227824
2015-02-02 18:16:35 +00:00
Marshall Clow
0b48cf9a62
Fix PR#22427. The implementation of inplace_merge had a \'small data set\' optimization; if either half of the merge was small (i.e, less than 9 items), it did an inplace merge rather than allocating a buffer and doing a faster/smarter merge. However, this failed to satisfy the complexity requirements in the standard. Remove that code. Add tests to check the complexity, and add the same tests for std::merge, since we are in that section of the test suite anyway.
...
llvm-svn: 227811
2015-02-02 17:35:53 +00:00
Marshall Clow
c57d98ae86
Removed some tabs that snuck into the test suite. No functionality change
...
llvm-svn: 227363
2015-01-28 20:26:11 +00:00
Marshall Clow
d632356aa3
Fix PR 22106; make std::swap work for multi-dimensional arrays. Thanks to Peter Griess for the report and suggested fix
...
llvm-svn: 225285
2015-01-06 19:20:49 +00:00
Eric Fiselier
5a83710e37
Move test into test/std subdirectory.
...
llvm-svn: 224658
2014-12-20 01:40:03 +00:00