IntervalIterator: Add move semantics rather than relying on broken implicit copy...
[oota-llvm.git] / include / llvm / Analysis / IntervalIterator.h
index ab70ad91b841cde220c6ccbc9ebd2c871d08fa44..da622fd5fb6aa88f2671912b19f1a9481627b9f5 100644 (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())) {