Add some extra checks to the MoveOnly test class to ensure it is not constructed or assigned from in a moved-from state.

Some tests were constructing it with 0, so use -1 as the invalid state
instead.

Reviewers: Marshall Clow

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

llvm-svn: 215301
This commit is contained in:
David Blaikie 2014-08-09 22:35:47 +00:00
parent 1abc1a5e14
commit f63d5fa236
1 changed files with 11 additions and 5 deletions

View File

@ -22,11 +22,17 @@ class MoveOnly
int data_;
public:
MoveOnly(int data = 1) : data_(data) {}
MoveOnly(MoveOnly&& x)
: data_(x.data_) {x.data_ = 0;}
MoveOnly& operator=(MoveOnly&& x)
{data_ = x.data_; x.data_ = 0; return *this;}
MoveOnly(int data = 0) : data_(data) { assert(data != -1); }
MoveOnly(MoveOnly &&x) : data_(x.data_) {
assert(x.data_ != -1);
x.data_ = -1;
}
MoveOnly &operator=(MoveOnly &&x) {
assert(x.data_ != -1);
data_ = x.data_;
x.data_ = -1;
return *this;
}
int get() const {return data_;}