From: David Blaikie Date: Wed, 12 Aug 2015 23:09:24 +0000 (+0000) Subject: -Wdeprecated: Job objects are stored in a vector yet are not really copyable, make... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e13866b7baae1934c8a2801825fa819bc5160485;p=clang -Wdeprecated: Job objects are stored in a vector yet are not really copyable, make them movable instead git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244829 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index ed749cc56f..275d89ae7a 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -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; };