diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2016-10-20 16:50:07 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2016-10-20 16:50:07 +0000 |
commit | d65ec2ceb2bac8c5328046f5e3f093ab01acc4b9 (patch) | |
tree | ff992624ae306eb507fdea82f76bcf288424c266 | |
parent | 025e26dd324eb254964c41de3717972bc3529f44 (diff) | |
download | bcm5719-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.h | 12 |
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, |