Commit Graph

3584 Commits

Author SHA1 Message Date
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
d9e1819ef4 Partially Revert r272613. FreeBSD needs the non-trivial constructors in pair.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272671 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 14:34:19 +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
d3f1134dca Fix syntax error in r272640.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272641 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 06:08:10 +00:00
Eric Fiselier
17402e36fa Fix error checking for strerror_r implementations that return the error code.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272640 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14 06:03:20 +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
Evandro Menezes
42e8527d86 [streambuf] Added call to traits_type::copy to common case in xsgetn()
Patch by Laman Sole <laxman.g@partner.samsung.com>, Sebastian Pop
<s.pop@samsung.com>, Aditya Kumar <aditya.k7@samsung.com>

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272401 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-10 16:00:29 +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
94f5dfc59b Two more issues w/patches
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272263 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-09 14:50:38 +00:00
Marshall Clow
f486825a5e Add notes for 2688
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272216 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-08 22:33:25 +00:00
Chris Bieneman
54f2d208b5 [CMake] Cleanup uses of USES_TERMINAL
Now that we are on CMake 3.4.3 we no longer need a version check around this.

This is the libcxx side of r272211.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272212 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-08 22:20:28 +00:00
Marshall Clow
9e65b66426 Mark 2441 as ready
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272202 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-08 21:25:38 +00:00
Marshall Clow
a5d22d57ed Patch ready for #2436
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272150 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-08 14:54:35 +00:00
Marshall Clow
a8054c3017 Added notes for a bunch of the issues
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272050 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-07 20:05:57 +00:00
Marshall Clow
0f3f60f494 Added notes about the issues for Oulu
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@272029 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-07 17:54: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
Marshall Clow
2700619520 Don't call memmove when there's nothing to move. Fixes PR#27978.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271794 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-04 16:16:59 +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
Asiri Rathnayake
0dd618b723 [libcxx] Fix thread join.pass.cpp segfault after r271475
Some pthread implementations do not like being called pthead_join()
with the pthread_t argument set to 0, and causes a segfault. This
patch fixes this issue by validating the pthread_t argument before
invoking pthread_join().

NFC.

Differential revision: http://reviews.llvm.org/D20929

Change-Id: Ief817c57bd0e1f43cbaa03061e02417d6a180c38
Reviewers: EricWF

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271634 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-03 08:45:26 +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
a2cc95e5b7 Mark LWG issue 2218 as complete.
LWG issue 2218 relaxes a restriction on how containers can call
Alloc::construct(...) and Alloc::destroy(...). There is nothing new to test.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271477 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 04:13:41 +00:00
Eric Fiselier
f1dbeb482d Mark LWG issue 2336 as complete. There is nothing to do.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271476 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 04:08:03 +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
d25628018b Update libcxx.llvm.org documentation by linking to new docs.
Summary:
Currently much of the libcxx website is duplicated between the old www/ documentation and newer Sphinx docs. This patch changes the main libc++ webpage so that it links to the new documentation where possible. This means removing numerous sections from the landing page.

@mclow.lists What do you think?

Reviewers: mclow.lists

Subscribers: cfe-commits, mclow.lists

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271469 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 02:16:28 +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
a27cbf8a13 [libcxx] Allow target flags to affect CMake configuration tests
Summary:
This patch changes the libc++ CMake so that it adds certain target flags like '-m32' or '--gcc-toolchain' before including config-ix.cmake.
Since these flags can affect things like check_library_exists([...]) they needed to be added before the tests are performed.

This patch fixes:

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

Reviewers: danalbert, jroelofs, bcraig, compnerd

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@271460 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-02 01:10:08 +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