Fix failing unique_ptr tests.

When I was refactoring the unique_ptr.single.ctor tests I added a test
deleter, 'NCDeleter', to deleter.h. Other tests that include deleter.h
redefine the NCDeleter type causing test failures.

llvm-svn: 243733
This commit is contained in:
Eric Fiselier 2015-07-31 04:34:25 +00:00
parent 7138765d45
commit 32ad52170c
2 changed files with 7 additions and 38 deletions

View File

@ -32,22 +32,6 @@ struct A
int A::count = 0; int A::count = 0;
class NCDeleter
{
int state_;
NCDeleter(NCDeleter&);
NCDeleter& operator=(NCDeleter&);
public:
NCDeleter() : state_(5) {}
int state() const {return state_;}
void set_state(int s) {state_ = s;}
void operator()(A* p) {delete [] p;}
};
int main() int main()
{ {
{ {
@ -71,10 +55,10 @@ int main()
} }
assert(A::count == 0); assert(A::count == 0);
{ {
NCDeleter d; NCDeleter<A[]> d;
std::unique_ptr<A[], NCDeleter&> s(new A[3], d); std::unique_ptr<A[], NCDeleter<A[]>&> s(new A[3], d);
A* p = s.get(); A* p = s.get();
std::unique_ptr<A[], NCDeleter&> s2 = std::move(s); std::unique_ptr<A[], NCDeleter<A[]>&> s2 = std::move(s);
assert(s2.get() == p); assert(s2.get() == p);
assert(s.get() == 0); assert(s.get() == 0);
assert(A::count == 3); assert(A::count == 3);

View File

@ -31,21 +31,6 @@ struct A
int A::count = 0; int A::count = 0;
class NCDeleter
{
int state_;
NCDeleter(NCDeleter&);
NCDeleter& operator=(NCDeleter&);
public:
NCDeleter() : state_(5) {}
int state() const {return state_;}
void set_state(int s) {state_ = s;}
void operator()(A* p) {delete [] p;}
};
std::unique_ptr<A[]> std::unique_ptr<A[]>
source1() source1()
@ -67,14 +52,14 @@ void sink2(std::unique_ptr<A[], Deleter<A[]> > p)
{ {
} }
std::unique_ptr<A[], NCDeleter&> std::unique_ptr<A[], NCDeleter<A[]>&>
source3() source3()
{ {
static NCDeleter d; static NCDeleter<A[]> d;
return std::unique_ptr<A[], NCDeleter&>(new A[3], d); return std::unique_ptr<A[], NCDeleter<A[]>&>(new A[3], d);
} }
void sink3(std::unique_ptr<A[], NCDeleter&> p) void sink3(std::unique_ptr<A[], NCDeleter<A[]>&> p)
{ {
} }