summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2016-10-20 16:50:07 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2016-10-20 16:50:07 +0000
commitd65ec2ceb2bac8c5328046f5e3f093ab01acc4b9 (patch)
treeff992624ae306eb507fdea82f76bcf288424c266
parent025e26dd324eb254964c41de3717972bc3529f44 (diff)
downloadbcm5719-llvm-d65ec2ceb2bac8c5328046f5e3f093ab01acc4b9.tar.gz
bcm5719-llvm-d65ec2ceb2bac8c5328046f5e3f093ab01acc4b9.zip
Put the move ctor for PassManager back for now, it breaks some builds.
For some reason using the default move ctor creates undefined references to it. llvm-svn: 284745
-rw-r--r--llvm/include/llvm/IR/PassManager.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h
index 07b30fe0fc6..4715777601d 100644
--- a/llvm/include/llvm/IR/PassManager.h
+++ b/llvm/include/llvm/IR/PassManager.h
@@ -241,8 +241,16 @@ public:
///
/// It can be passed a flag to get debug logging as the passes are run.
PassManager(bool DebugLogging = false) : DebugLogging(DebugLogging) {}
- PassManager(PassManager &&) = default;
- PassManager &operator=(PassManager &&) = default;
+ // We have to explicitly define all the special member functions because MSVC
+ // refuses to generate them.
+ PassManager(PassManager &&Arg)
+ : Passes(std::move(Arg.Passes)),
+ DebugLogging(std::move(Arg.DebugLogging)) {}
+ PassManager &operator=(PassManager &&RHS) {
+ Passes = std::move(RHS.Passes);
+ DebugLogging = std::move(RHS.DebugLogging);
+ return *this;
+ }
/// \brief Run all of the passes in this manager over the IR.
PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,
OpenPOWER on IntegriCloud