Commit Graph

677 Commits

Author SHA1 Message Date
Eric Fiselier
a0b4d55133 Add more tests for optional<const T>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285384 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-28 06:40:29 +00:00
Tim Shen
38c2a3767b [libcxx] Make regex_match backtrack when search fails
Summary:
Fixes PR19851.
alg.re.match/ecma.pass.cpp still XFAILS on linux, but after commenting out
locale-related tests, it passes. I don't have a freebsd machine to produce a
full pass.

Reviewers: mclow.lists

Subscribers: cfe-commits, emaste

Differential Revision: https://reviews.llvm.org/D26026

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285352 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-27 21:40:34 +00:00
Stephan T. Lavavej
e465ff34be [PATCH] D25483: [libcxx] [test] Fix non-Standard assumptions about how many elements are allocated
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285346 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-27 21:25:12 +00:00
Casey Carter
856947863f Cleanup nonportable behavior in tests for std::any
Fixes MS issues 63, 64, and 65.

test/std/utilities/any/any.class/any.cons/move.pass.cpp:
* "Moves are always destructive" is not a portable assumption; check with LIBCPP_ASSERT.

test/std/utilities/any/any.class/any.cons/value.pass.cpp:
* The standard does not forbid initializing std::any from any pointer-to-function type. Remove the non-conforming "DecayTag" test.

test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp:
* Self-swap is not specified to perform no moves; check with LIBCPP_ASSERT.

Differential Revision: https://reviews.llvm.org/D26007



git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285234 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-26 20:18:13 +00:00
Eric Fiselier
e577a4c660 Fix nullptr tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285117 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-25 20:45:17 +00:00
Eric Fiselier
c4a7e9177a Fix non-portable tests for temp_directory_path(...)
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285020 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-24 20:40:35 +00:00
Eric Fiselier
04b7f3da2b Add missing include in string_view tests. Patch from Billy ONeil @ microsoft
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285012 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-24 20:11:17 +00:00
Eric Fiselier
44543930e4 Fix shadow warnings in string_view tests. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@285011 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-24 20:10:00 +00:00
Eric Fiselier
6547b4fa2b Fix libc++ specific assertion in permissions(...) tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284945 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 19:14:58 +00:00
Eric Fiselier
26cbb8d03e Make make_from_tuple tests more portable. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284943 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 18:55:51 +00:00
Eric Fiselier
317120240b Fix unreferenced parameters. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284942 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 18:52:58 +00:00
Eric Fiselier
e2c4227504 Fix shadowing warning. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284941 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-23 18:47:58 +00:00
Tim Shen
741cb8b8e6 [libcxx] Support std::regex_constants::match_not_null
Summary: Fixes PR21597.

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D25595

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284881 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-21 20:41:47 +00:00
Marshall Clow
464abc8aee Adding a missing constexpr test for reverse_iterator operator[].
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284731 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-20 14:57:34 +00:00
Eric Fiselier
6d36efa497 Attempt to workaround XPASS for aligned allocation tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284691 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-20 03:31:07 +00:00
Marshall Clow
4414a6a911 Implement constexpr support for reverse_iterator. Reviewed as https://reviews.llvm.org/D25534
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284602 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-19 15:12:50 +00:00
Eric Fiselier
4035b668e6 Make any_cast<void()>(nullptr) compile
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284333 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 11:56:38 +00:00
Eric Fiselier
fcdb3f77e8 Update LWG 2767 and add test case
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284324 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 03:45:06 +00:00
Eric Fiselier
46c0fcb2b3 Update status for std::optional LWG issues and fix an optional SFINAE bug
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284323 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 03:21:35 +00:00
Eric Fiselier
846edfb837 Update issue status for LWG 2744
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284322 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 02:51:50 +00:00
Eric Fiselier
100a39d169 Update issue status for LWG 2768 and 2769
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284321 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 01:43:43 +00:00
Eric Fiselier
1e1bbc7437 Implement LWG 2712 and update other issues status
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284318 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 00:47:59 +00:00
Eric Fiselier
451f34db16 Implement LWG 2681 and 2682
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284316 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-16 00:29:22 +00:00
Eric Fiselier
25dc5bdb88 Implement LWG 2672.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284314 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 23:05:04 +00:00
Eric Fiselier
620a9a5ecf Implement modified LWG 2665
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284313 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 22:37:42 +00:00
Eric Fiselier
9ffd1d56b4 Prevent new/delete replacement tests from being optimized away.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284289 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 22:47:08 +00:00
Eric Fiselier
e630058e90 Clarify XFAIL comments
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284282 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 21:30:35 +00:00
Eric Fiselier
f172df1f43 XFAIL aligned allocation tests for older Clang versions
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284214 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 08:47:09 +00:00
Eric Fiselier
34c6b805cf XFAIL aligned allocation test failures with UBSAN
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284210 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 07:49:15 +00:00
Eric Fiselier
48aa2e14a2 Add void_t and invoke feature test macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284209 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 07:19:52 +00:00
Eric Fiselier
9acbffa370 Implement P0035R4 -- Add C++17 aligned allocation functions
Summary:
This patch implements the library side of P0035R4. The implementation is thanks to @rsmith.

In addition to the C++17 implementation, the library implementation can be explicitly turned on using `-faligned-allocation` in all dialects.


Reviewers: mclow.lists, rsmith

Subscribers: rsmith, cfe-commits

Differential Revision: https://reviews.llvm.org/D25591

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284206 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-14 06:46:30 +00:00
Marshall Clow
e29fb4c411 Implement http://wg21.link/p0302r1: Removing Allocator Support in std::function. These functions never worked, and as far as I know, no one ever called them.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284164 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-13 21:06:03 +00:00
Marshall Clow
698cce6e0e Add missing include in test; NFC. Thanks to Jonathan Wakely for the report.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284120 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-13 13:21:38 +00:00
Dimitry Andric
ecb5332d41 Disable trivial pair copy/move tests when unsupported
Summary:
On FreeBSD, for ABI compatibility reasons, the pair trivial copy
constructor is disabled, using the aptly-named
`_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR` define.

Disable the related tests when this define is on, so they don't fail
unexpectedly.

Reviewers: emaste, rsmith, theraven, EricWF

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D25449

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284047 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 20:26:47 +00:00
Eric Fiselier
a7b77ebd18 Remove usages of _LIBCPP_CONSTEXPR under test/std
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@284002 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 10:28:09 +00:00
Eric Fiselier
4775578c61 Remove usages of _ALIGNAS_TYPE
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283999 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 10:19:48 +00:00
Eric Fiselier
ae96260ceb Remove use of _VSTD::__invoke in the not_fn tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283991 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 09:06:12 +00:00
Eric Fiselier
35ce4859dd Implement N4606 optional
Summary:
Adapt implementation of Library Fundamentals TS optional into an implementation of N4606 optional.

  - Update relational operators per http://wg21.link/P0307
  - Update to requirements of http://wg21.link/P0032
  - Extension: Implement trivial copy/move construction/assignment for `optional<T>` when `T` is trivially copyable.

Audit P/Rs for optional LWG issues:
  - 2756 "C++ WP optional<T> should 'forward' T's implicit conversions" Implemented, which also resolves 2753 "Optional's constructors and assignments need constraints" (modulo my refusal to explicitly delete the move operations, which is a design error that I'm working on correcting in the 2756 P/R).
  - 2736 "nullopt_t insufficiently constrained" Already conforming. I've added a test ensuring that `nullopt_t` is not copy-initializable from an empty braced-init-list, which I believe is the root intent of the issue, to avoid regression.
  - 2740 "constexpr optional<T>::operator->" Already conforming.
  - 2746 "Inconsistency between requirements for emplace between optional and variant" No P/R, but note that the author's '"suggested resolution" is already implemented.
  - 2748 "swappable traits for optionals" Already conforming.
  - 2753 "Optional's constructors and assignments need constraints" Implemented.

Most of the work for this patch was done by Casey Carter @ Microsoft. Thank you Casey!



Reviewers: mclow.lists, CaseyCarter, EricWF

Differential Revision: https://reviews.llvm.org/D22741

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283980 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 07:46:20 +00:00
Eric Fiselier
ead5d404cc Revert Add <optional>. Will recommit with better commit message
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283978 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 06:48:31 +00:00
Eric Fiselier
fbc80168bb Add <optional> header.
This patch is largely thanks to Casey Carter @ Microsoft. He did the initial
work of porting our experimental implementation and tests over to namespace
std.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283977 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 06:45:11 +00:00
Eric Fiselier
159b460868 Fix two more tests that hang when testing against libstdc++
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283976 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 04:56:23 +00:00
Eric Fiselier
4432d3f204 Prevent the test suite from hanging when run against libstdc++
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283975 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 04:29:50 +00:00
Eric Fiselier
508f208ae9 Fix LWG2683 - filesystem::copy() should always clear the user-provided error_code
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283951 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-11 22:18:09 +00:00
Eric Fiselier
05577c82e1 Fix incorrect exception handling behavior in the uninitialized algorithms
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283941 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-11 21:13:44 +00:00
Marshall Clow
e9115a1b41 Add tests to check that swap(std::function, std::function) is noexcept. This is LWG#2062, but we already do this. No changes to the library, just adding tests.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283780 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-10 16:47:48 +00:00
Marshall Clow
8be2c5dd9e Add tests for LWG2544. We already implement this; just adding tests to make sure that we keep doing it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283749 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-10 14:10:45 +00:00
Eric Fiselier
a244bb9d18 Provide a constexpr addressof with GCC 7.
__builtin_addressof was added to the GCC trunk in the past week. This patch
teaches libc++ about it so it can correctly provide constexpr addressof.

Unfortunately this patch will break users of earlier GCC 7 builds, since
we expect __builtin_addressof but one won't be provided. One option would be
to only use __builtin_addressof for GCC 7.1 and above, but that means
waiting for another release.

Instead I've specifically chosen to break older GCC 7 versions. Since GCC 7
has yet to be released, and the 7.0 release is a development release, I
believe that anybody currently using GCC 7.0 will have no issue upgrading.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283715 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-10 05:34:18 +00:00
Eric Fiselier
cedbdd7fee Remove all _LIBCPP_VERSION tests from under test/std
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283644 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-08 01:32:56 +00:00
Eric Fiselier
fd1c9dddcc Purge all usages of _LIBCPP_STD_VER under test/std/algorithm
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283643 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-08 01:25:23 +00:00
Eric Fiselier
daa895f887 Add missing <memory> include in test
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@283633 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-08 00:59:16 +00:00