IntervalIterator: Add move semantics rather than relying on broken implicit copy ctor (found with -Wdeprecated)

We were just getting lucky because the copy ctor would be elided by RVO.

llvm-svn: 232297
This commit is contained in:
David Blaikie 2015-03-15 01:21:34 +00:00
parent 166121ad0b
commit bdd9b3caad
1 changed files with 6 additions and 0 deletions

View File

@ -105,6 +105,12 @@ public:
}
}
IntervalIterator(IntervalIterator &&x)
: IntStack(std::move(x.IntStack)), Visited(std::move(x.Visited)),
OrigContainer(x.OrigContainer), IOwnMem(x.IOwnMem) {
x.IOwnMem = false;
}
IntervalIterator(IntervalPartition &IP, bool OwnMemory) : IOwnMem(OwnMemory) {
OrigContainer = &IP;
if (!ProcessInterval(IP.getRootInterval())) {