From 9e215b0880543be3be9fe98a48d50a351c986f0f Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Mon, 10 Mar 2014 00:54:01 +0000 Subject: [PATCH] [PM] Add a comment I missed and add the special members to one more class that might (at some point) need them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203428 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/PassManager.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/llvm/IR/PassManager.h b/include/llvm/IR/PassManager.h index d90db7bf406..e16524577f9 100644 --- a/include/llvm/IR/PassManager.h +++ b/include/llvm/IR/PassManager.h @@ -788,6 +788,8 @@ public: explicit FunctionAnalysisManagerModuleProxy(FunctionAnalysisManager &FAM) : FAM(FAM) {} + // We have to explicitly define all the special member functions because MSVC + // refuses to generate them. FunctionAnalysisManagerModuleProxy( const FunctionAnalysisManagerModuleProxy &Arg) : FAM(Arg.FAM) {} @@ -892,6 +894,18 @@ public: ModuleAnalysisManagerFunctionProxy(const ModuleAnalysisManager &MAM) : MAM(MAM) {} + // We have to explicitly define all the special member functions because MSVC + // refuses to generate them. + ModuleAnalysisManagerFunctionProxy( + const ModuleAnalysisManagerFunctionProxy &Arg) + : MAM(Arg.MAM) {} + ModuleAnalysisManagerFunctionProxy(ModuleAnalysisManagerFunctionProxy &&Arg) + : MAM(Arg.MAM) {} + ModuleAnalysisManagerFunctionProxy & + operator=(ModuleAnalysisManagerFunctionProxy RHS) { + std::swap(*this, RHS); + return *this; + } /// \brief Run the analysis pass and create our proxy result object. /// Nothing to see here, it just forwards the \c MAM reference into the