Eric Fiselier
79586dca74
Make std::is_assignable tolerate references to incomplete types.
...
llvm-svn: 276599
2016-07-25 02:08:55 +00:00
Eric Fiselier
b8937d6454
Work around MSVC's non-standard ABI for enums. Patch from STL@microsoft.com
...
llvm-svn: 276589
2016-07-25 00:02:23 +00:00
Eric Fiselier
7f1b098ab4
Unbreak traits tests by handling differences between version macros in clang/apple-clang.
...
llvm-svn: 276200
2016-07-20 22:53:21 +00:00
Eric Fiselier
85acffa676
Unbreak is_constructible tests for Clang <= 3.7.
...
There is a bug in Clang's __is_constructible builtin that causes it
to return true for function types; ex [T = void()].
llvm-svn: 276092
2016-07-20 06:36:11 +00:00
Eric Fiselier
b66b621038
Reimplement is_constructible fallback implementation. Fixes PR21574.
...
The previous implementation relied highly on specializations to handle
special cases. This new implementation lets the compiler do the work when possible.
llvm-svn: 276084
2016-07-20 05:01:24 +00:00
Marshall Clow
10e8bef1d4
Add more tests for LWG#2582. No code changes needed, just tests.
...
llvm-svn: 275211
2016-07-12 20:15:46 +00:00
Marshall Clow
8001ccd06e
Add tests for the meta.unary.props that do not require a complete type. This is part of LWG#2582
...
llvm-svn: 275184
2016-07-12 15:50:53 +00:00
Eric Fiselier
0774aa96dc
Allow is_swappable to SFINAE on deleted/ambiguous swap functions
...
llvm-svn: 275094
2016-07-11 19:57:13 +00:00
Marshall Clow
bc3b1f3b7b
Fix typo in #ifdef; leave tests commented out b/c gcc 4.8 harks on them.
...
llvm-svn: 274882
2016-07-08 16:59:54 +00:00
Manman Ren
78fa242ec2
Revert r274605 due to bot failure: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/244/
...
llvm-svn: 274651
2016-07-06 18:24:53 +00:00
Marshall Clow
5c29783bf2
Fix typo in #ifdef, and re-enable tests now that the green-dragon bots are no more
...
llvm-svn: 274605
2016-07-06 05:28:44 +00:00
Eric Fiselier
c76111a132
Fix use of terse static assert. Patch from STL@microsoft.com
...
llvm-svn: 274206
2016-06-30 04:29:12 +00:00
Eric Fiselier
56f23a3f7f
Move remaining _LIBCPP_VERSION tests into test/libcxx
...
llvm-svn: 273367
2016-06-22 02:23:22 +00:00
Eric Fiselier
505ceacd3b
Move typoed dir meta.hel to meta.help
...
llvm-svn: 273362
2016-06-22 01:42:39 +00:00
Eric Fiselier
46fb2b903e
Fix comment typos, strip trailing whitespace. Patch from STL@microsoft.com
...
llvm-svn: 273357
2016-06-22 01:23:51 +00:00
Eric Fiselier
8d0d842e7b
Avoid huge main() functions and huge arrays. Patch from STL@microsoft.com
...
llvm-svn: 273354
2016-06-22 01:13:44 +00:00
Eric Fiselier
7a580d0a72
Don't use C++17 terse static assert. Patch from STL@microsoft.com
...
llvm-svn: 273353
2016-06-22 01:10:14 +00:00
Eric Fiselier
f2f2a6395f
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!
llvm-svn: 272716
2016-06-14 21:31:42 +00:00
Eric Fiselier
3245e1f34b
Fix warnings in tests.
...
llvm-svn: 272629
2016-06-14 03:21:49 +00:00
Eric Fiselier
d04c685168
Remove trailing whitespace in test suite. Approved by Marshall Clow.
...
llvm-svn: 271435
2016-06-01 21:35:39 +00:00
Asiri Rathnayake
6edc12c886
[libcxx] Improve tests to use the UNSUPPORTED lit directive
...
Quite a few libcxx tests seem to follow the format:
#if _LIBCPP_STD_VER > X
// Do test.
#else
// Empty test.
#endif
We should instead use the UNSUPPORTED lit directive to exclude the test on
earlier C++ standards. This gives us a more accurate number of test passes
for those standards and avoids unnecessary conflicts with other lit
directives on the same tests.
Reviewers: bcraig, ericwf, mclow.lists
Differential revision: http://reviews.llvm.org/D20730
llvm-svn: 271108
2016-05-28 08:57:35 +00:00
Eric Fiselier
95b632d4b9
Fix PR27538. Remove __is_convertible specializations for array and function types.
...
This patch fixes a bunch of bugs in the fallback implementation of
is_convertible, which is used by GCC. Removing the "__is_convertible"
specializations for array/function types we fallback on the SFINAE test,
which is more correct.
See https://llvm.org/bugs/show_bug.cgi?id=27538
llvm-svn: 268359
2016-05-03 04:26:02 +00:00
Eric Fiselier
382e91792b
Fix or move various non-standard tests.
...
This patch does the following:
* Remove <__config> includes from some container tests.
* Guards uses of std::launch::any in async tests because it's an extension.
* Move "test/std/extensions" to "test/libcxx/extensions"
* Moves various non-standard tests including those in "sequences/vector",
"std/localization" and "utilities/meta".
llvm-svn: 267981
2016-04-29 04:07:45 +00:00
Eric Fiselier
7d7d2c0edd
Add proper include for unique_ptr. Patch from STL@microsoft.com
...
llvm-svn: 267958
2016-04-29 00:37:56 +00:00
Eric Fiselier
1f4231f8cf
Guard libc++ specific c.__invariants() tests in LIBCPP_ASSERT macros
...
llvm-svn: 267947
2016-04-28 22:28:23 +00:00
Eric Fiselier
0f9e91acc8
Provide member function definitions to avoid warnings. Patch from STL@microsoft.com
...
llvm-svn: 267843
2016-04-28 02:18:48 +00:00
Eric Fiselier
f07dd8d0a9
Add is_swappable/is_nothrow_swappable traits
...
llvm-svn: 267079
2016-04-21 23:38:59 +00:00
Eric Fiselier
840fa745ca
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).
llvm-svn: 266836
2016-04-20 00:14:32 +00:00
Eric Fiselier
2152fd7682
Implement LWG issue 2219 - support reference_wrapper in INVOKE
...
llvm-svn: 266590
2016-04-18 06:17:30 +00:00
Marshall Clow
4877c197c2
Added tests to make sure that the categorization traits work on incomplete types
...
llvm-svn: 261925
2016-02-25 20:15:47 +00:00
Marshall Clow
1b9fae5a40
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.
llvm-svn: 261661
2016-02-23 18:09:38 +00:00
Marshall Clow
9bb3582fc9
Add tests for LWG#2560. No code changes, just tests
...
llvm-svn: 261653
2016-02-23 17:01:52 +00:00
Eric Fiselier
060cc200d0
Fix PR26103 - Error calling is_convertible with incomplete type. Patch from Michael Daniels.
...
llvm-svn: 258852
2016-01-26 20:24:30 +00:00
Marshall Clow
fcdb19904c
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.
...
llvm-svn: 258418
2016-01-21 18:22:43 +00:00
Eric Fiselier
6469c3ec17
Mark some test XFAIL for GCC 4.9 due to missing is_trivial* traits
...
llvm-svn: 258287
2016-01-20 04:59:57 +00:00
Eric Fiselier
831c112954
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.
llvm-svn: 255585
2015-12-15 00:32:21 +00:00
Marshall Clow
6e07ccdfe1
K-Ballo pointed out a mistake in the add_lvalue_ref tests I checked in; now more of them are passing. Thanks
...
llvm-svn: 255519
2015-12-14 18:11:51 +00:00
Marshall Clow
161eae2daa
Add add_lvalue_ref tests for a few function types, with a note why not more
...
llvm-svn: 255513
2015-12-14 17:34:03 +00:00
Marshall Clow
12dff9e66a
Fix bugs in alignment_of_v, etc. Re-enable the newly added tests
...
llvm-svn: 254289
2015-11-30 05:20:00 +00:00
Marshall Clow
00b6b01592
Temporarily disable new tests while I figure out what's going on
...
llvm-svn: 254288
2015-11-30 05:15:10 +00:00
Marshall Clow
c8f3816e63
Fix bad macros
...
llvm-svn: 254287
2015-11-30 05:10:10 +00:00
Marshall Clow
803a8bb105
Fix bad macros in tests
...
llvm-svn: 254284
2015-11-30 05:03:35 +00:00
Marshall Clow
e12a536d76
Implement more of P0006; Type Traits Variable Templates.
...
llvm-svn: 254283
2015-11-30 04:30:02 +00:00
Marshall Clow
dd1b261f3a
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
...
llvm-svn: 253215
2015-11-16 15:54:13 +00:00
Marshall Clow
d17405fe9c
Walter pointed out some missing includes in the tests. Fixing the includes uncovered a couple bugs in the _v type traits. Fixed those, too
...
llvm-svn: 252612
2015-11-10 15:48:23 +00:00
Marshall Clow
8be59af1ed
More of P0006R0: type traits variable aliases for C++17.
...
llvm-svn: 252406
2015-11-07 17:44:36 +00:00
Marshall Clow
00ec0bf828
Improve the tests for 'is_literal_type'
...
llvm-svn: 251767
2015-11-01 21:13:10 +00:00
Marshall Clow
dd0ef09954
Implement the first part of P0006R0: Adopt Type Traits Variable Templates for C++17. Significantly augment the existing tests.
...
llvm-svn: 251766
2015-11-01 20:24:59 +00:00
Eric Fiselier
21dfbfb426
make common_type SFINAE-friendly and support void. Patch from Agustin Berge.
...
This patch also fixes PR22135. (https://llvm.org/bugs/show_bug.cgi?id=22135 )
See the review for more information: http://reviews.llvm.org/D6964
llvm-svn: 246977
2015-09-08 00:13:57 +00:00
Eric Fiselier
d49455ef93
Suppress clang warnings in some tests
...
llvm-svn: 246399
2015-08-30 22:04:20 +00:00