Commit Graph

136 Commits

Author SHA1 Message Date
Eric Fiselier
6531a09dc7 Add proper include for unique_ptr. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267958 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-29 00:37:56 +00:00
Eric Fiselier
375e2f669c Guard libc++ specific c.__invariants() tests in LIBCPP_ASSERT macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267947 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 22:28:23 +00:00
Eric Fiselier
bda804ea25 Remove names of unreferenced parameters. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267852 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 03:17:56 +00:00
Eric Fiselier
849c551745 Add braces, move braces, and rename variables to avoid shadowing. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267844 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 02:45:11 +00:00
Eric Fiselier
ce24f965f1 Provide member function definitions to avoid warnings. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267843 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 02:18:48 +00:00
Eric Fiselier
4596c29195 Guard Clang and GCC specific pragmas. Patch from STL@microsoft.com
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267836 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 01:49:03 +00:00
Marshall Clow
d7f1f971d1 Rename a few tests that had typos in their names. No functional change. Thanks to STL for the catch
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267287 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-23 14:31:00 +00:00
Eric Fiselier
5ccbc48774 Fix some non-standard parts of our test suite. Reported by STL
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267131 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-22 10:33:56 +00:00
Eric Fiselier
8f1e73dfd2 Add is_swappable/is_nothrow_swappable traits
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@267079 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-21 23:38:59 +00:00
Eric Fiselier
8d5cbd7ce2 Add 'is_callable' and 'is_nothrow_callable' traits and cleanup INVOKE.
The primary purpose of this patch is to add the 'is_callable' traits.
Since 'is_nothrow_callable' required making 'INVOKE' conditionally noexcept
I also took this oppertunity to implement a constexpr version of INVOKE.
This fixes 'std::experimental::apply' which required constexpr 'INVOKE support'.

This patch will be followed up with some cleanup. Primarly removing most
of "__member_function_traits" since it's no longer used by INVOKE (in C++11 at least).


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266836 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-20 00:14:32 +00:00
Ben Craig
9c6f00d616 XFAILing new test on C++03
initializer_list doesn't exist in C++03.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266820 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-19 21:07:30 +00:00
Ben Craig
d59d416bc9 Include initializer_list from utility
The C++11 and C++14 standards both say in the header <utility> synopsis that
<utility> shall include <initializer_list>.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266808 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-19 20:13:55 +00:00
Eric Fiselier
95526d31cb Make tuples constructors conditionally EXPLICIT. See N4387
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266703 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-19 01:19:25 +00:00
Eric Fiselier
134ff65b8f Implement LWG issue 2219 - support reference_wrapper in INVOKE
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266590 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 06:17:30 +00:00
Eric Fiselier
b952822a48 Add hash specializations for __int128_t. Fixes LWG issue 2119
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266587 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 02:54:00 +00:00
Eric Fiselier
c325f3dccf Add tests for LWG issue 2361
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266586 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-18 02:31:05 +00:00
Eric Fiselier
d5019333fa Cleanup and guard tuple's constructor SFINAE. Fixes PR22806 and PR23256.
There are two main fixes in this patch.

First the constructor SFINAE was changed so that it's evaluated in two stages
where the first stage evaluates the "safe" SFINAE conditions and the second
evaluates the "dangerous" ones. The key is that the second stage is lazily
evaluated only if the first stage passes. This helps fix PR23256
(https://llvm.org/bugs/show_bug.cgi?id=23256).

The second fix is for PR22806 and LWG issue 2549. This fix applies
the suggested resolution to the LWG issue in order to prevent the construction
of dangling references. The SFINAE for this check is contained within
the _PreferTupleLikeConstructor alias template. The tuple-like constructors
are disabled whenever that trait returns false.

(https://llvm.org/bugs/show_bug.cgi?id=22806)
(http://cplusplus.github.io/LWG/lwg-active.html#2549)

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266461 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-15 18:05:59 +00:00
Eric Fiselier
55ad3ac786 [libcxx] Remove the "reduced-arity-initialization" extension from the uses-allocator constructors
Summary:
A default uses-allocator constructor has been added since that overload was previously provided by the extended constructor.

Since Clang does implicit conversion checking after substitution this constructor has to deduce the allocator_arg_t parameter so that it can prevent the evaluation of "is_default_constructible" if the first argument doesn't match. See http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1391 for more information.

This patch fixes PR24779 (https://llvm.org/bugs/show_bug.cgi?id=24779)

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@266409 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-15 03:29:40 +00:00
Eric Fiselier
735026e3ee Make std::addressof constexpr in C++17 (Clang only).
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@263688 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-17 03:30:56 +00:00
Marshall Clow
d8b9e0bbff Mark exception-throwing test as XFAIL when exceptions are disabled
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@263405 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-14 02:51:50 +00:00
Marshall Clow
4951a48a6a Fix for PR26812: possible overflow issue in std::allocator::allocate
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@262610 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-03 12:04:39 +00:00
Marshall Clow
7490f53118 Added tests to make sure that the categorization traits work on incomplete types
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@261925 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-25 20:15:47 +00:00
Marshall Clow
17a80bc8b6 No, really - test the constructor
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@261875 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-25 15:27:13 +00:00
Marshall Clow
5425ba06f6 Add test to ensure that the converting constructor in N4089 is present and working
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@261874 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-25 15:25:29 +00:00
Marshall Clow
a4abce578a These new tests fail on the green-dragon bots, which use an old Apple compiler.
Since they're scheduled to be updated soon, we'll just comment out this test for
the moment, and re-commit when the bots are updated.



git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@261661 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-23 18:09:38 +00:00
Marshall Clow
c310174934 Add tests for LWG#2560. No code changes, just tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@261653 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-23 17:01:52 +00:00
Eric Fiselier
e01f946792 Fix PR26103 - Error calling is_convertible with incomplete type. Patch from Michael Daniels.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258852 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 20:24:30 +00:00
Marshall Clow
73de880a44 Implement LWG#2385; remove the allocator-aware std::function::assign call. It was useless, and didn't actually *do anything* with the allocator. Now it's gone. On the off chance that someone is mistakenly calling it, it's only gone in C++1z
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258697 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-25 17:29:55 +00:00
Marshall Clow
7a7960ff7f Implement LWG#2101 'Some transformation types can produce impossible types' Introduced a new (internal) type trait '__is_referenceable' with tests. Use that trait in add_lvalue_reference, add_rvalue_reference and add_pointer.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258418 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-21 18:22:43 +00:00
Eric Fiselier
c8b24c6d54 Mark some test XFAIL for GCC 4.9 due to missing is_trivial* traits
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258287 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-20 04:59:57 +00:00
Eric Fiselier
fa1e5db3bc Add missing license headers
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258196 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-19 21:52:04 +00:00
Marshall Clow
4f4a07d66a One more missing std:: qualification from Jonathan
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@257506 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-12 19:15:10 +00:00
Marshall Clow
e5e9bff62a Add a bunch of missing includes in the test suite to make it more portable. Fixes bugs #26120 and #26121. Thanks to Jonathan Wakely for the reports and the patches.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@257474 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-12 14:51:04 +00:00
Eric Fiselier
9bef1ff571 [libcxx] Fix LWG Issue #2367 - Fixing std::tuple and std::pair's default constructors.
Summary: This patch implements the solution for LWG Issue #2367. See http://cplusplus.github.io/LWG/lwg-active.html#2367

Reviewers: mclow.lists, EricWF

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@256325 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-23 08:20:26 +00:00
Eric Fiselier
9a6a9c08e4 Fix type in tuple test. Sorry for the noise
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255944 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-18 01:04:36 +00:00
Eric Fiselier
199bee0ea7 [libcxx] LWG2485: get() should be overloaded for const tuple&&. Patch from K-Ballo.
Review: http://reviews.llvm.org/D14839

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255941 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-18 00:36:55 +00:00
Eric Fiselier
e39f4b996e Fix various GCC mis-configurations for newer versions.
This patch goes through and enables C++11 and C++14 features for newer GCC's.
The main changes are:

1. Turn on variable templates. (Uses __cpp_variable_templates)
2. Assert atomic<Tp> is trivially copyable (Uses _GNUC_VER >= 501).
3. Turn on trailing return support for GCC. (Uses _GNUC_VER >= 404)
4. XFAIL void_t test for GCC 5.1 and 5.2. Fixed in GCC 6.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255585 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-15 00:32:21 +00:00
Marshall Clow
90e328c271 K-Ballo pointed out a mistake in the add_lvalue_ref tests I checked in; now more of them are passing. Thanks
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255519 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-14 18:11:51 +00:00
Marshall Clow
633fe505fe Add add_lvalue_ref tests for a few function types, with a note why not more
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255513 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-14 17:34:03 +00:00
Eric Fiselier
76d2446cf4 Use __make_integer_seq builtin for std::make_integer_sequence. Patch by K-ballo.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@255162 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-09 22:03:06 +00:00
Marshall Clow
a3866e4c89 Last bit of P0006; mark it as complete
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254290 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:39:30 +00:00
Marshall Clow
ea972908a3 Fix bugs in alignment_of_v, etc. Re-enable the newly added tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254289 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:20:00 +00:00
Marshall Clow
c180f34dd3 Temporarily disable new tests while I figure out what's going on
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254288 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:15:10 +00:00
Marshall Clow
5c2fabf7f7 Fix bad macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254287 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:10:10 +00:00
Marshall Clow
8254964ef0 Implement more of P0006; Type Traits Variable Templates. <ratio>
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254285 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:04:22 +00:00
Marshall Clow
b5599c682f Fix bad macros in tests
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254284 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 05:03:35 +00:00
Marshall Clow
a3e7f528a2 Implement more of P0006; Type Traits Variable Templates.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@254283 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-30 04:30:02 +00:00
Marshall Clow
99b6e56ae9 Add tests for the extended integer types - as required by LWG#2119
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253376 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 21:04:24 +00:00
Marshall Clow
f60d092766 Implement P0007: Constant View: A proposal for a std::as_const helper function template.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253274 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 00:08:08 +00:00
Marshall Clow
fe99a30bd0 Implement P0013R1: Logical Operator Type Traits. Make a hidden implementation (__and_, __or_, and __not_) so that we can use them elsewhere in non-C++17 code - for example, in the LFTS
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@253215 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 15:54:13 +00:00