diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h --- a/llvm/include/llvm/IR/PassManager.h +++ b/llvm/include/llvm/IR/PassManager.h @@ -1206,13 +1206,13 @@ /// templated adaptor. template ModuleToFunctionPassAdaptor -createModuleToFunctionPassAdaptor(FunctionPassT Pass) { +createModuleToFunctionPassAdaptor(FunctionPassT &&Pass) { using PassModelT = detail::PassModel; return ModuleToFunctionPassAdaptor( - std::make_unique(std::move(Pass))); + std::make_unique(std::forward(Pass))); } /// A utility pass template to force an analysis result to be available.