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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284745 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2016-10-20 16:50:07 +00:00
parent 99edc4fc3c
commit c32b5967a7

View File

@ -241,8 +241,16 @@ public:
/// ///
/// It can be passed a flag to get debug logging as the passes are run. /// It can be passed a flag to get debug logging as the passes are run.
PassManager(bool DebugLogging = false) : DebugLogging(DebugLogging) {} PassManager(bool DebugLogging = false) : DebugLogging(DebugLogging) {}
PassManager(PassManager &&) = default; // We have to explicitly define all the special member functions because MSVC
PassManager &operator=(PassManager &&) = default; // 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. /// \brief Run all of the passes in this manager over the IR.
PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM, PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM,