[PM] Add a comment I missed and add the special members to one more
[oota-llvm.git] / include / llvm / IR / PassManager.h
index d90db7bf4063ad95dd3d6a5b6133d8372f7c914d..e16524577f9c370c43a982e0a0f7c07496cf106a 100644 (file)
@@ -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