summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/memory/util.smartptr/util.smartptr.shared
Commit message (Collapse)AuthorAgeFilesLines
* Move test into test/std subdirectory.Eric Fiselier2014-12-2052-3504/+0
| | | | llvm-svn: 224658
* Add a test for LWG issue #2399. We already implement this, but now we have a ↵Marshall Clow2014-11-181-0/+9
| | | | | | test as well. llvm-svn: 222242
* Implement LWG2400 - 'shared_ptr's get_deleter() should use addressof()', and ↵Marshall Clow2014-11-171-0/+8
| | | | | | add tests. Mark LWG2400 and LWG2404 as complete llvm-svn: 222161
* Actually mark the tests an unsupported with MSAN (not just ASAN)Eric Fiselier2014-11-046-6/+6
| | | | llvm-svn: 221240
* Mark tests that replace operator new/delete as UNSUPPORTED with ASAN and MSAN.Eric Fiselier2014-11-046-0/+12
| | | | | | | tests that replace operator new/delete won't link when using ASAN and MSAN because these sanitizers also replace new/delete. llvm-svn: 221236
* Add support for "fancy" pointers to shared_ptr. Fixes PR20616Eric Fiselier2014-10-234-0/+212
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch add support for "fancy pointers/allocators" as well as fixing support for shared_pointer and "minimal" allocators. Fancy pointers are class types that meet the NullablePointer requirements. In our case they are created by fancy allocators. `support/min_allocator.h` is an archetype for these types. There are three types of changes made in this patch: 1. `_Alloc::template rebind<T>::other` -> `__allocator_traits_rebind<_Alloc, T>::type`. This change was made because allocators don't need a rebind template. `__allocator_traits_rebind` is used instead of `allocator_traits::rebind` because use of `allocator_traits::rebind` requires a workaround for when template aliases are unavailable. 2. `a.deallocate(this, 1)` -> `a.deallocate(pointer_traits<self>::pointer_to(*this), 1)`. This change change is made because fancy pointers aren't always constructible from raw pointers. 3. `p.get()` -> `addressof(*p.get())`. Fancy pointers aren't actually a pointer. When we need a "real" pointer we take the address of dereferencing the fancy pointer. This should give us the actual raw pointer. Test Plan: Tests were added using `support/min_allocator.h` to each affected shared_ptr overload and creation function. These tests can only be executed in C++11 or greater since min_allocator is only available then. A extra test was added for the non-variadic versions of allocate_shared. Reviewers: danalbert, mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4859 llvm-svn: 220469
* Found six (nmostly) identical files named 'test_allocator.h' in the libcxx ↵Marshall Clow2013-12-037-88/+6
| | | | | | test suite. Moved one to /support, made it a superset, and removed all but one of the others, and iupdated all the includes. Left the odd one (thread/futures/test_allocator.h) for later. llvm-svn: 196174
* This is a start at making the libc++ test suite friendlier to the ↵Howard Hinnant2013-03-231-1/+6
| | | | | | -fnoexceptions flag. Although this is not a complete solution, it does reduce the number of test failures on OS X from 467 to 128 on OS X when -fno-exceptions is enabled, and does not impact the number of failures at all when -fno-exceptions is not enabled. The bulk of this code was donated anonymously. llvm-svn: 177824
* Andrew Morrow: There are two tests under test/utilities/memory that heap ↵Howard Hinnant2012-08-021-2/+0
| | | | | | | | | | | | | allocate two integers which remain unused and are subsequently leaked, so the test fail when run under valgrind. Unless I'm overlooking a subtle reason why they are needed I think they can be removed, allowing these tests to pass under valgrind. The attached patch removes the variables. If there is a reason for them to exist, I can change this to just delete them at the end of the test. llvm-svn: 161195
* Modernize relational operators for shared_ptr and unique_ptr. This includes ↵Howard Hinnant2012-02-211-0/+71
| | | | | | adding support for nullptr, and using less<T*>. Fixes http://llvm.org/bugs/show_bug.cgi?id=12056. llvm-svn: 151084
* Exercise rvalue arguements to make_shared for C++11 mode.Howard Hinnant2012-02-181-0/+11
| | | | llvm-svn: 150887
* Adjust two tests to account for a nasty change in copying behaviorAlexis Hunt2011-07-184-0/+18
| | | | | | | between C++03 and C++0x and its effect on exceptions, and another two to not test move construction when rvalue references are not available. llvm-svn: 135445
* Corrected some bugs in both memory and the tests. Preparing for being able ↵Howard Hinnant2011-05-111-4/+4
| | | | | | to turn on support for alias templates. llvm-svn: 131199
* license changeHoward Hinnant2010-11-1650-100/+100
| | | | llvm-svn: 119395
* Changed __config to react to all of clang's currently documented has_feature ↵Howard Hinnant2010-09-043-14/+14
| | | | | | flags, and renamed _LIBCPP_MOVE to _LIBCPP_HAS_NO_RVALUE_REFERENCES to be more consistent with the rest of the libc++'s flags, and with clang's nomenclature. llvm-svn: 113086
* Fixing whitespace problemsHoward Hinnant2010-08-2250-50/+3137
| | | | llvm-svn: 111767
* Wiped out some non-ascii characters that snuck into the copyright.Howard Hinnant2010-05-1150-50/+50
| | | | llvm-svn: 103516
* libcxx initial importHoward Hinnant2010-05-1151-0/+155
llvm-svn: 103490
OpenPOWER on IntegriCloud