summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/meta
Commit message (Collapse)AuthorAgeFilesLines
* Move test into test/std subdirectory.Eric Fiselier2014-12-20105-6008/+0
| | | | llvm-svn: 224658
* Move the optional tests into test/experimental. They were put into ↵Marshall Clow2014-12-091-0/+6
| | | | | | test/utilities because optional was going to be part of C++14, and then was pulled and put into the Library Fundamentals TS instead. No funcitonality change here; just moving files around. llvm-svn: 223778
* Fix a warning in the test; no functionality changeMarshall Clow2014-11-171-1/+1
| | | | llvm-svn: 222143
* Implement void_t from N3911. Add a private version for use in the library ↵Marshall Clow2014-11-171-0/+69
| | | | | | before C++1z. Update the 1z status page, marking a bunch of issues that don't require library changes as complete (2129, 2212, 2230, 2233, 2325, 2365, 2376) llvm-svn: 222138
* Fix rvalue bug in __has_operator_addressofEric Fiselier2014-11-051-1/+14
| | | | llvm-svn: 221398
* Fix operator & detection trait to check for free function overloads as wellEric Fiselier2014-11-051-0/+5
| | | | llvm-svn: 221395
* Whitespace maintenance. Remove a bunch of tabs that snuck in. No ↵Marshall Clow2014-10-182-2/+2
| | | | | | functionality change llvm-svn: 220142
* Fix for PR 19616: 'tuple_cat of nested tuples fails in noexcept ↵Marshall Clow2014-10-071-1/+14
| | | | | | specification'. Thanks to Louis Dionne for the fix. llvm-svn: 219243
* Fix some type-traits (is_assignable, etc) dealing with classes that take ↵Marshall Clow2014-09-225-0/+32
| | | | | | non-const references as 'right hand side'. Add tests. Fixes PR# 20836 llvm-svn: 218286
* Fix PR#20834 - 'is_trivially_destructible yeilds wrong answer for arrays of ↵Marshall Clow2014-09-0213-21/+20
| | | | | | unknown bound' Thanks to K-ballo for the bug report. Update a few of the other tests while we're here, and fix a typo in a test name. llvm-svn: 216909
* Add extra test case for PR20345. Should have been commited with r215984Eric Fiselier2014-08-191-0/+76
| | | | llvm-svn: 215985
* Fix is_member_function_pointer does not account for ellipsis. PR20345. Patch ↵Eric Fiselier2014-08-191-0/+24
| | | | | | | | from Agustin Berge. I reviewed the patch and added the test cases. llvm-svn: 215984
* Tame a few enum size tests when using -fshort-enums on ARM.Jonathan Roelofs2014-08-152-2/+2
| | | | llvm-svn: 215769
* Correctly implement LWG 2049; std::is_destructible.Marshall Clow2014-07-164-13/+75
| | | | llvm-svn: 213163
* Make meta.trans.other/aligned_storage.pass.cpp pass on arm.Nico Weber2014-06-041-3/+11
| | | | | | | The maximum alignment on arm is 8, not 16 like on x86. Use alignof(max_align_t) to make the test work in both cases. llvm-svn: 210195
* Fix a problem exposed by r208825, which caused bind (and other bits of ↵Marshall Clow2014-05-291-0/+23
| | | | | | libc++) to stop working. And tests llvm-svn: 209785
* Fixed a test that was attempting to use rvalue-references w/o checking to ↵Marshall Clow2014-04-171-1/+4
| | | | | | see if they were supported in the language. This resulted in a warning when testing using C++03. llvm-svn: 206482
* [libc++] Teach is_integral, is_[un]signed and make_[un]signed about ↵Stephan Tolksdorf2014-03-266-0/+46
| | | | | | | | | | __[u]int128_t This commit also adds tests for std::numeric_limits<__[u]int128_t>. Reviewed in http://llvm-reviews.chandlerc.com/D2917 llvm-svn: 204849
* Mark is_final as a C++14 feature.Marshall Clow2014-03-051-1/+1
| | | | llvm-svn: 202991
* Implement LWG #2212: std::is_final. This requires compiler support, which ↵Marshall Clow2014-03-051-0/+53
| | | | | | modern versions of clang provide. Also mark LWG #2230 as complete - no code changes needed. llvm-svn: 202934
* Fix for PR17606 - result_of (and INVOKE) works incorrectly for member ↵Marshall Clow2014-02-101-0/+18
| | | | | | function pointers with ref qualifiers. Also a drive-by fix for common_type in C++03 mode. Thanks to Michel Morin for the bug report and the proposed fix. llvm-svn: 201101
* Fix erroneous test; was failing on darwin-ppc32. Fixes PR18469.Marshall Clow2014-01-181-0/+4
| | | | llvm-svn: 199542
* Avoid using the name 'bzero' for an enumerator in global scope. <strings.h> ↵Richard Smith2013-10-212-2/+2
| | | | | | might declare this as a function. llvm-svn: 193066
* Fix LWG Issue 2141: common_type trait produces reference typesMarshall Clow2013-10-072-3/+17
| | | | llvm-svn: 192142
* LWG Issue 2247: Implement type trait 'is_null_pointer'Marshall Clow2013-10-0514-0/+91
| | | | llvm-svn: 192049
* Implement N3672, optional<T>.Howard Hinnant2013-09-022-0/+67
| | | | llvm-svn: 189772
* is_destructible for function types was mistakenly returning true instead of ↵Howard Hinnant2013-08-301-0/+3
| | | | | | false. This is true in both C++11 and C++1y, but has been clarified by the post C++11 LWG issue 2049. llvm-svn: 189687
* Add a check for arrays of unknown bounds to is_destructible. This fixes ↵Howard Hinnant2013-08-091-0/+2
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=16839 llvm-svn: 188080
* A few fixes to tests for Windows port.Howard Hinnant2013-07-151-2/+3
| | | | llvm-svn: 186334
* Port make_[un]signed tests to platforms where sizeof(wchar_t) == 2.Howard Hinnant2013-07-112-4/+4
| | | | llvm-svn: 186136
* War on tabs.Howard Hinnant2013-07-082-9/+9
| | | | llvm-svn: 185865
* Implement n3545 for c++14Marshall Clow2013-07-081-0/+5
| | | | llvm-svn: 185856
* Patch for N3655 (Transformation type traits) with Howard's additionsMarshall Clow2013-07-0448-591/+963
| | | | llvm-svn: 185597
* Constrain __invoke functions more accurately. This fixes ↵Howard Hinnant2013-05-071-0/+7
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=15861 . llvm-svn: 181377
* Somehow aligned_union got dropped through the cracks. This adds it. Did a ↵Howard Hinnant2013-04-223-8/+73
| | | | | | drive-by fix of alignment_of while I was in the neighborhood. llvm-svn: 180036
* Richard Smith: It was pointed out to me off-list that libc++'s ↵Howard Hinnant2013-04-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | non-compiler-builtin implementation of std::is_polymorphic does this: template <class _Tp> struct __is_polymorphic1 : public _Tp {}; ... and that g++ rejects this if _Tp has an inaccessible virtual destructor (because __is_polymorphic1<_Tp> would have a deleted virtual destructor overriding _Tp's non-deleted destructor). Clang was failing to reject this; I've fixed that in r178563, but that causes libc++'s corresponding test case to fail with both clang and gcc when using the fallback implementation. The fallback code also incorrectly rejects final types. The attached patch fixes the fallback implementation of is_polymorphic; we now use dynamic_cast's detection of polymorphic class types rather than trying to determine if adding a virtual function makes the type larger: enable_if<sizeof((_Tp*)dynamic_cast<const volatile void*>(declval<_Tp*>())) != 0, ...> Two things of note here: * the (_Tp*) cast is necessary to work around bugs in Clang and g++ where we otherwise don't instantiate the dynamic_cast (filed as PR15656) * the 'const volatile' is here to treat is_polymorphic<cv T> as true for a polymorphic class type T -- my reading of the standard suggests this is incorrect, but it matches our builtin __is_polymorphic and gcc llvm-svn: 178576
* Hook up to the new clang __is_trivially_constructible and ↵Howard Hinnant2012-02-242-11/+19
| | | | | | __is_trivially_assignable traits. Fixes r10925427 and http://llvm.org/bugs/show_bug.cgi?id=12038. llvm-svn: 151406
* Given that __underlying_type is now available in clang, implementAlexis Hunt2011-07-181-1/+15
| | | | | | std::underlying_type. llvm-svn: 135410
* noexcept for <memory>. I've added a few extension noexcept to: ↵Howard Hinnant2011-05-281-1/+1
| | | | | | allocator_traits<A>::deallocate, allocaate<T>::deallocate, return_temporary_buffer, and default_delete<T>::operator()(T*) const. My rationale was: If a std-dicated noexcept function needs to call another std-defined function, that called function must be noexcept. We're all a little new to noexcept, so things like this are to be expected. Also included fix for broken __is_swappable trait pointed out by Marc Glisse, thanks Marc|. And fixed a test case for is_nothrow_destructible. Destructors are now noexcept by default| llvm-svn: 132261
* Redesign of result_of to handle reference-qualified member functionsHoward Hinnant2011-05-161-0/+4
| | | | llvm-svn: 131407
* A much improved type_traits for C++0x. Not yet done: ↵Howard Hinnant2011-05-1317-48/+79
| | | | | | is_trivially_constructible, is_trivially_assignable and underlying_type. llvm-svn: 131291
* minor corrections to test, and hook is_base_of up to clang intrinsicHoward Hinnant2011-01-282-5/+2
| | | | llvm-svn: 124502
* placeholder testHoward Hinnant2011-01-251-0/+19
| | | | llvm-svn: 124193
* Eliminate the C++0x-only is_convertible testing function that acceptsDouglas Gregor2011-01-251-0/+15
| | | | | | | | | | | | | | | | | | | | | | | a cv-qualifier rvalue reference to the type, e.g., template <class _Tp> char __test(const volatile typename remove_reference<_Tp>::type&&); The use of this function signature rather than the more straightforward one used in C++98/03 mode, e.g., template <class _Tp> char __test(_Tp); is broken in two ways: 1) An rvalue reference cannot bind to lvalues, so is_convertible<X&, X&>::value would be false. This breaks two of the unique_ptr tests on Clang and GCC >= 4.5. Prior GCC's seem to have allowed rvalue references to bind to lvalues, allowing this bug to slip in. 2) By adding cv-qualifiers to the type we're converting to, we get some incorrect "true" results for, e.g., is_convertible<const X&, X&>::value. llvm-svn: 124166
* Update testsuite strucuture to latest draftHoward Hinnant2010-11-233-0/+0
| | | | llvm-svn: 120029
* N3123Howard Hinnant2010-11-201-3/+3
| | | | llvm-svn: 119906
* N3142. Many of these traits are just placeholders with medium quality ↵Howard Hinnant2010-11-1938-723/+1235
| | | | | | emulation; waiting on compiler intrinsics to do it right. llvm-svn: 119854
* license changeHoward Hinnant2010-11-1692-184/+184
| | | | llvm-svn: 119395
* Hooked the following up to clang: is_class, is_enum, ↵Howard Hinnant2010-09-081-1/+32
| | | | | | has_nothrow_copy_assign, has_trivial_destructor, has_virtual_destructor, is_pod. Implemented has_copy_assign. llvm-svn: 113373
* has_nothrow_copy_assign hooked up to clangHoward Hinnant2010-09-081-30/+18
| | | | llvm-svn: 113364
OpenPOWER on IntegriCloud