]> granicus.if.org Git - clang/commitdiff
-Wdeprecated: Job objects are stored in a vector yet are not really copyable, make...
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 12 Aug 2015 23:09:24 +0000 (23:09 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 12 Aug 2015 23:09:24 +0000 (23:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244829 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/ExprConstant.cpp

index ed749cc56f1e3b51756f98b04843742f63e4f138..275d89ae7a82865e1d51709059b8fc22f8bb656b 100644 (file)
@@ -6555,7 +6555,13 @@ class DataRecursiveIntBinOpEvaluator {
     EvalResult LHSResult; // meaningful only for binary operator expression.
     enum { AnyExprKind, BinOpKind, BinOpVisitedLHSKind } Kind;
 
-    Job() : StoredInfo(nullptr) {}
+    Job() = default;
+    Job(Job &&J)
+        : E(J.E), LHSResult(J.LHSResult), Kind(J.Kind),
+          StoredInfo(J.StoredInfo), OldEvalStatus(J.OldEvalStatus) {
+      J.StoredInfo = nullptr;
+    }
+
     void startSpeculativeEval(EvalInfo &Info) {
       OldEvalStatus = Info.EvalStatus;
       Info.EvalStatus.Diag = nullptr;
@@ -6567,7 +6573,7 @@ class DataRecursiveIntBinOpEvaluator {
       }
     }
   private:
-    EvalInfo *StoredInfo; // non-null if status changed.
+    EvalInfo *StoredInfo = nullptr; // non-null if status changed.
     Expr::EvalStatus OldEvalStatus;
   };