Eric Fiselier
7bffc89cb9
[libcxx] Add <experimental/system_error>
...
Summary:
This patch just adds the variable templates in <experimental/system_error>.
see: https://rawgit.com/cplusplus/fundamentals-ts/v1/fundamentals-ts.html#syserror
Reviewers: jroelofs, danalbert, K-ballo, mclow.lists
Reviewed By: mclow.lists
Subscribers: chandlerc, cfe-commits
Differential Revision: http://reviews.llvm.org/D7353
llvm-svn: 227973
2015-02-03 16:03:24 +00:00
Eric Fiselier
2f746d4c94
[libcxx] Add <experimental/chrono>
...
Summary:
This patch adds <experimental/chrono> which only contains a single variable template.
See: https://rawgit.com/cplusplus/fundamentals-ts/v1/fundamentals-ts.html#time
Reviewers: jroelofs, danalbert, K-ballo, mclow.lists
Reviewed By: mclow.lists
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D7352
llvm-svn: 227860
2015-02-02 21:05:47 +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
538fec0e59
Fix for PR22061 by K-ballo
...
llvm-svn: 227384
2015-01-28 22:22:35 +00:00
Marshall Clow
949389c395
We had two identical files named 'MoveOnly.h' in the test suite. Move one to support/, remove the other, and update all the tests that included them. No functionality change.
...
llvm-svn: 227370
2015-01-28 21:22: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
d5f461ca03
Fix PR22366. When move-constructing an associative container and explicitly passing an allocator that compares different, we were not calling the destructor of the elements in the moved-from container.
...
llvm-svn: 227359
2015-01-28 19:54:25 +00:00
Nico Weber
b1e72eca0c
[libcxx] Make __wrap_iter work with gcc.
...
he following snippet doesn't build when using gcc and libc++:
#include <string>
void f(const std::string& s) { s.begin(); }
#include <vector>
void AppendTo(const std::vector<char>& v) { v.begin(); }
The problem is that __wrap_iter has a private constructor. It lists vector<>
and basic_string<> as friends, but gcc seems to ignore this for vector<> for
some reason. Declaring vector before the friend declaration in __wrap_iter is
enough to work around this problem, so do that. With this patch, I'm able to
build chromium/android with libc++. Without it, two translation units fail to
build. (iosfwd already provides a forward declaration of basic_string.)
As far as I can tell, this is due to a gcc bug, which I filed as
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64816 .
Fixes PR22355.
http://reviews.llvm.org/D7201
llvm-svn: 227226
2015-01-27 19:27:39 +00:00
Marshall Clow
00f792e19e
Added test for incomplete type support in vector/list/forward_list. References PR#17980
...
llvm-svn: 227131
2015-01-26 20:06:52 +00:00
Marshall Clow
07ef8e6796
Fix PR21428. Buffer was one byte too small in octal formatting case. Add test
...
llvm-svn: 227097
2015-01-26 17:24:52 +00:00
Marshall Clow
f15d7a5882
Fix PR#22284. Add a new overload to deque::insert to handle forward iterators. Update tests to exercise this case.
...
llvm-svn: 226847
2015-01-22 18:33:29 +00:00
Marshall Clow
eb9bfac876
Cleaning up the test suite; remove some includes of non-standard file <__config>
...
llvm-svn: 226411
2015-01-18 19:05:51 +00:00
Jonathan Roelofs
eb7b5e74d4
Rename system_lib -> system_cxx_lib. NFC
...
llvm-svn: 226061
2015-01-14 23:38:12 +00:00
Marshall Clow
9db9069cf3
Make regex::assign not clobber the regex in case of failure. Fixes PR#22213
...
llvm-svn: 225799
2015-01-13 16:49:52 +00:00
Eric Fiselier
4fc4864bbd
Fix vexing parse in test.
...
llvm-svn: 225633
2015-01-12 15:56:41 +00:00
Marshall Clow
612c2c7469
One more #include request in the test suite from Walter Brown
...
llvm-svn: 225609
2015-01-11 18:07:06 +00:00
Marshall Clow
e21582e742
Walter Brown sent a list of tests which needed 'additional includes' to match what was in the standard. Added these includes to the tests. No changes to the library or test results.
...
llvm-svn: 225541
2015-01-09 20:25:52 +00:00
Marshall Clow
a257ab0803
In early C++11 standard drafts, std::function derived from std::unary_function or std::binary_function if there was only one (or two) parameters. Before C++11 shipped, this restiction was lifted, but libc++ still does this (which is fine). However, the tests still check for this outdated requiremnt. Change then to check for the nested typedefs instead (which are still required by the standard). No change to the library.
...
llvm-svn: 225430
2015-01-08 06:36:41 +00:00
Marshall Clow
c51d3ecb98
Add checks to make sure the hash functor has the right typedefs
...
llvm-svn: 225429
2015-01-08 06:18:59 +00:00
Marshall Clow
6855c93ce9
Missed a typename
...
llvm-svn: 225408
2015-01-07 22:26:48 +00:00
Marshall Clow
d95510ebba
libc++ implements its' hash objects as deriving from std::unary_function, and the tests test for that. STL @ MS pointed out that the standard doesn't requie these objects to derive from unary_function, and so the tests should not require that either. Change the tests to check for the embedded typedefs - which ARE required. No change to the library.
...
llvm-svn: 225403
2015-01-07 21:53:23 +00:00
Marshall Clow
601fa8d824
In C++03, a bunch of the arithmetic/logical/comparison functors (such as negate/bit_not.pass/logical_not) were defined as deriving from unary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion.
...
llvm-svn: 225402
2015-01-07 21:51:30 +00:00
Marshall Clow
842b4aecf8
Add tests to check the typedefs from the result of std::owner_less
...
llvm-svn: 225381
2015-01-07 20:54:51 +00:00
Marshall Clow
9570e7b04a
Missed one comparison test in r225375
...
llvm-svn: 225376
2015-01-07 20:40:28 +00:00
Marshall Clow
66369c03a3
In C++03, a bunch of the arithmetic/logical/comparison functors (such as add/equal_to/logical_or) were defined as deriving from binary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion.
...
llvm-svn: 225375
2015-01-07 20:31:06 +00:00
Dan Albert
d5c19bb16d
Move a test to the new tests directory.
...
I had written the patch that added this test before the tests were
moved into tests/std, so the test ended up in the wrong directory.
llvm-svn: 225300
2015-01-06 22:18:27 +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
279663c1b4
Prevent ill-formed instantiation of __invoke_of<...> during the evaluation of a bind expression. Fixes PR22003.
...
The SFINAE on the function __mu(Fn, Args...) that evaluates nested bind
expressions always tries to deduce the return type for Fn(Args...) even when Fn
is not a nested bind expression. This can cause hard compile errors when the
instantation of Fn(Args...) is ill-formed. This patch prevents the instantation
of __invoke_of<Fn, Args...> unless Fn is actually a bind expression.
Bug reportand patch from Michel Morin.
http://llvm.org/bugs/show_bug.cgi?id=22003
llvm-svn: 224753
2014-12-23 05:54:34 +00:00
Marshall Clow
09ac1efe14
Remove non-const test to get test passing. Will come back later and (correctly) add non-const tests
...
llvm-svn: 224748
2014-12-23 01:30:39 +00:00
Eric Fiselier
2cbc654d93
[libcxx] Consolidate new/delete replacement in tests and disable it when using sanitizers.
...
Summary:
MSAN and ASAN also replace new/delete which leads to a link error in these tests. Currently they are unsupported but I think it would be useful if these tests could run with sanitizers.
This patch creates a support header that consolidates the new/delete replacement functionality and checking.
When we are using sanitizers new and delete are no longer replaced and the checks always return true.
Reviewers: mclow.lists, danalbert, jroelofs, EricWF
Reviewed By: EricWF
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D6562
llvm-svn: 224741
2014-12-22 22:38:59 +00:00
Eric Fiselier
5a83710e37
Move test into test/std subdirectory.
...
llvm-svn: 224658
2014-12-20 01:40:03 +00:00