Commit Graph

2374 Commits

Author SHA1 Message Date
Eric Fiselier
05761e6861 Fix a couple of warnings present in the filesystem tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273035 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-17 19:57:54 +00:00
Eric Fiselier
6e9a694dce Add Filesystem TS -- Complete
Add the completed std::experimental::filesystem implementation and tests.
The implementation supports C++11 or newer.

The TS is built as part of 'libc++experimental.a'. Users of the TS need to
manually link this library. Building and testing the TS can be disabled using
the CMake option '-DLIBCXX_ENABLE_FILESYSTEM=OFF'.

Currently 'libc++experimental.a' is not installed by default. To turn on the
installation of the library use '-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON'.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273034 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-17 19:46:40 +00:00
Eric Fiselier
461797d21a Fix warning in tuple tests. The test suite should now run clean with most warnings enabled
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272822 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-15 19:41:52 +00:00
Eric Fiselier
6bdead7593 Add -Wno-unused-command-line-argument when running the test suite to prevent errors
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272809 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-15 17:25:05 +00:00
Eric Fiselier
629aa5670a [libcxx] [test] In test/support/test_allocator.h, fix construct() to avoid moving immovable types.
Summary:
In test/support/test_allocator.h, fix construct() to avoid moving immovable types.

This improves the allocator's conformance, and fixes compiler errors with MSVC's STL. The scenario is when the allocator is asked to construct an object of type X that's immovable (deleted copy/move ctors), but implicitly constructible from an argument type A. When perfectly forwarded, X can be (explicitly) constructed from A, and everything is fine. That's std::allocator's behavior, and the Standard's default when a user allocator's construct() doesn't exist. The previous implementation of construct() here mishandled this scenario. Passing A to this construct() would implicitly construct an X temporary, bound to (non-templated) T&&. Then construct() would attempt to move-construct X from that X temporary, but X is immovable, boom.

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272747 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-15 01:53:32 +00:00
Eric Fiselier
42e3e187f5 Improve portability of random_device tests. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272746 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-15 01:50:31 +00:00
Eric Fiselier
c02ca7f4b0 Improve portability of vector tests. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272745 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-15 01:44:22 +00:00
Eric Fiselier
a995776958 Improve portability of hash tests. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272744 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-15 01:42:35 +00:00
Eric Fiselier
d0eba8d313 Fix bad test that was previously getting ifdef-ed away
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272722 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 21:50:30 +00:00
Eric Fiselier
d24c465bea 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!


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272716 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 21:31:42 +00:00
Marshall Clow
174432dbd5 Found a couple bugs in the test suite. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272679 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 15:25:46 +00:00
Eric Fiselier
5a623cf59f Update errcat.objects tests so they test the bug fixed in r272640.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272642 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 06:37:36 +00:00
Eric Fiselier
e443672b05 Avoid octal escape sequence warning with MSVC. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272639 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 05:47:46 +00:00
Eric Fiselier
10d7856f8f Add missing include
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272638 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 04:58:19 +00:00
Eric Fiselier
1f471cbe3e Temporarily XFAIL variadic lock_guard mangling test for GCC 4.9
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272637 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 04:45:26 +00:00
Eric Fiselier
10b52a0e56 Implement variadic lock_guard.
Summary:
This patch implements the variadic `lock_guard` paper. 

Making `lock_guard` variadic is a ABI breaking change because the specialization `lock_guard<_Mutex>` mangles differently then when it was the primary template. This change only provides variadic `lock_guard` in ABI V2 or when `_LIBCPP_ABI_VARIADIC_LOCK_GUARD` is defined.

Note that in ABI V2 `lock_guard` must always be declared as a variadic template, even in C++03, in order to keep the ABI consistent. For this reason `lock_guard` is forward declared as a variadic template in all standard dialects and therefore depends on variadic templates being provided as an extension in C++03. All supported versions of Clang and GCC provide this extension.




Reviewers: mclow.lists

Subscribers: K-ballo, mclow.lists, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272634 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 03:48:09 +00:00
Eric Fiselier
a30cee2258 Make system_error::message() thread safe. Fixes PR25598.
Summary:
system_error::message() uses `strerror` for the generic and system categories. This function is not thread safe.

The fix is to use `strerror_r`. It has been available since 2001 for GNU libc and since BSD 4.4 on FreeBSD/OS X.
On platforms with GNU libc the extended version is used which always returns a valid string, even if an error occurs.

In single-threaded builds `strerror` is still used.

See https://llvm.org/bugs/show_bug.cgi?id=25598

Reviewers: majnemer, mclow.lists

Subscribers: erik65536, cfe-commits, emaste

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272633 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 03:45:31 +00:00
Eric Fiselier
55ae1f0e07 Ignore depricated warnings from <ext/hash_map> and <ext/hash_set>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272632 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 03:26:11 +00:00
Eric Fiselier
bfdae2062a Fix warnings in tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272629 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 03:21:49 +00:00
Eric Fiselier
202acb7fd3 Remove unused local var. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272622 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 02:55:21 +00:00
Eric Fiselier
afa2f4331a Prevent truncation warning. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272621 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 02:54:15 +00:00
Eric Fiselier
831bfc277c Fix vector<bool> tests that were using ints. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272620 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 02:53:04 +00:00
Eric Fiselier
d6c0cf0ebd Rename variables to prevent shadowing. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272619 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 02:51:13 +00:00
Eric Fiselier
5e3bf9c69a Avoid name shadowing in test. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272618 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 02:47:46 +00:00
Eric Fiselier
be6c5e18b3 Silence more unused variable warnings. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272617 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 02:46:39 +00:00
Eric Fiselier
bf5a4189d3 Remove _LIBCPP_TRIVIAL_PAIR_COPY_CTOR option.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272613 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 01:36:15 +00:00
Dan Albert
d8df1781e3 Add REQUIRES: c++experimental where appropriate.
Summary:
I haven't added it to all the tests, just those that fail without it
(those that aren't header only).

Reviewers: EricWF, mclow.lists

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272443 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-10 22:45:11 +00:00
Marshall Clow
4241df3ef4 Make the comparison objects that we pass in for various tests look more like actual comparison objects. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272288 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-09 18:34:38 +00:00
Marshall Clow
467eaf8269 Avoid Shadowing warnings in the associative containers tests. Thanks to STL for the patch.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272018 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-07 15:49:39 +00:00
Marshall Clow
fb59f5ce4d Rename some test data (and make it const) to rid us of some shadowing warnings in the test suite. No functional change. Thanks to STL@microsoft for the report and patch.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271919 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-06 18:24:08 +00:00
Marshall Clow
10b452646a Remove arithmetic +/-127 on chars; results in UB when dealing with signed chars. Thanks to STL@microsoft for the report.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271897 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-06 14:35:22 +00:00
Asiri Rathnayake
1575e3e813 [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.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271741 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-03 21:40:03 +00:00
Eric Fiselier
3bf0d98eb1 Add not_fn test for throwing operator!
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271502 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 08:37:00 +00:00
Eric Fiselier
dd7418914d Fix TEST_HAS_NO_EXCEPTIONS misspelling in the test suite.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271501 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 08:19:02 +00:00
Eric Fiselier
03b9c6b922 Mark LWG issue 2545 as complete. Add extra tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271489 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 05:44:14 +00:00
Eric Fiselier
b36940bb34 Fix leak in __enable_weak_this(). Thanks to Arthur O'Dwyer for finding it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271487 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 04:57:00 +00:00
Eric Fiselier
e98bd2a486 Mark LWG issue 2250 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271475 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 04:03:31 +00:00
Eric Fiselier
400d356341 Mark LWG issue 2450 as complete.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271473 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 03:12:44 +00:00
Eric Fiselier
c230822a61 Add C++17 std::not_fn negator.
Summary:
Exactly what it sounds like.

I plan to commit this in a couple of days assuming no objections.

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271464 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 01:25:41 +00:00
Eric Fiselier
dbfa5b6ea7 Remove enable_shared_from_this test since it leaks the control block and fails with ASAN
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271459 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 01:09:12 +00:00
Eric Fiselier
18e1ea69ae Implement P0033R1 - Re-enabling shared_from_this
Summary: See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0033r1.html

Reviewers: mclow.lists

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271449 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 00:15:35 +00:00
Eric Fiselier
84acb1ec3f Remove trailing whitespace in test suite. Approved by Marshall Clow.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271435 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-01 21:35:39 +00:00
Eric Fiselier
68db6cdf1b Cleanup non-standard tests as reported by STL@microsoft.com. NFC.
This patch addresses the following issues in the test suite:

1. Move "std::bad_array_length" test from std/ to libcxx/ test directory
   since the feature is not a part of the standard.

2. Rename "futures.tas" test directory to "futures.task" since that is the
   correct stable name.

3. Move tests for "packaged_task<T>::result_type" from std/ to libcxx/
   test directory since the typedef is a libc++ extension.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271430 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-01 21:05:53 +00:00
Eric Fiselier
8a8c114479 Mark LWG issue 2520 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271249 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 04:27:57 +00:00
Eric Fiselier
57c164f2a2 Add tests that got missed in r271247.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271248 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 01:51:34 +00:00
Eric Fiselier
7883d02159 Mark LWG issue 2537 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271241 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 01:11:20 +00:00
Eric Fiselier
7d1c44c360 Mark LWG issue #2585 as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271240 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 01:03:07 +00:00
Eric Fiselier
979137793e Mark LWG issue 2565 as complete. Update the tests to check it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271238 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-31 00:23:31 +00:00
Eric Fiselier
efa8e8868c Make string_view work with -fno-exceptions and get tests passing.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271237 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-30 23:53:19 +00:00
Eric Fiselier
2aad5d548c Fix bug in test allocator that incorrectly computed the allocation size
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271195 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-30 01:31:04 +00:00