From fe24bff8c6a4d8e5d23309bf6fe151860dc97ecd Mon Sep 17 00:00:00 2001 From: Teresa Johnson Date: Thu, 11 Aug 2016 17:19:53 +0000 Subject: [PATCH] Add move ops to satisfy MSVC. Try to appease MSVC bot: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/27164/steps/run%20tests/logs/stdio llvm-svn: 278363 --- llvm/include/llvm/LTO/Config.h | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/llvm/include/llvm/LTO/Config.h b/llvm/include/llvm/LTO/Config.h index 63a0176..41830f4 100644 --- a/llvm/include/llvm/LTO/Config.h +++ b/llvm/include/llvm/LTO/Config.h @@ -121,6 +121,52 @@ struct Config { CombinedIndexHookFn; CombinedIndexHookFn CombinedIndexHook; + Config() {} + // FIXME: Remove once MSVC can synthesize move ops. + Config(Config &&X) + : CPU(std::move(X.CPU)), Features(std::move(X.Features)), + Options(std::move(X.Options)), MAttrs(std::move(X.MAttrs)), + RelocModel(std::move(X.RelocModel)), CodeModel(std::move(X.CodeModel)), + CGOptLevel(std::move(X.CGOptLevel)), OptLevel(std::move(X.OptLevel)), + DisableVerify(std::move(X.DisableVerify)), + OverrideTriple(std::move(X.OverrideTriple)), + DefaultTriple(std::move(X.DefaultTriple)), + ShouldDiscardValueNames(std::move(X.ShouldDiscardValueNames)), + DiagHandler(std::move(X.DiagHandler)), + ResolutionFile(std::move(X.ResolutionFile)), + PreOptModuleHook(std::move(X.PreOptModuleHook)), + PostPromoteModuleHook(std::move(X.PostPromoteModuleHook)), + PostInternalizeModuleHook(std::move(X.PostInternalizeModuleHook)), + PostImportModuleHook(std::move(X.PostImportModuleHook)), + PostOptModuleHook(std::move(X.PostOptModuleHook)), + PreCodeGenModuleHook(std::move(X.PreCodeGenModuleHook)), + CombinedIndexHook(std::move(X.CombinedIndexHook)) {} + // FIXME: Remove once MSVC can synthesize move ops. + Config &operator=(Config &&X) { + CPU = std::move(X.CPU); + Features = std::move(X.Features); + Options = std::move(X.Options); + MAttrs = std::move(X.MAttrs); + RelocModel = std::move(X.RelocModel); + CodeModel = std::move(X.CodeModel); + CGOptLevel = std::move(X.CGOptLevel); + OptLevel = std::move(X.OptLevel); + DisableVerify = std::move(X.DisableVerify); + OverrideTriple = std::move(X.OverrideTriple); + DefaultTriple = std::move(X.DefaultTriple); + ShouldDiscardValueNames = std::move(X.ShouldDiscardValueNames); + DiagHandler = std::move(X.DiagHandler); + ResolutionFile = std::move(X.ResolutionFile); + PreOptModuleHook = std::move(X.PreOptModuleHook); + PostPromoteModuleHook = std::move(X.PostPromoteModuleHook); + PostInternalizeModuleHook = std::move(X.PostInternalizeModuleHook); + PostImportModuleHook = std::move(X.PostImportModuleHook); + PostOptModuleHook = std::move(X.PostOptModuleHook); + PreCodeGenModuleHook = std::move(X.PreCodeGenModuleHook); + CombinedIndexHook = std::move(X.CombinedIndexHook); + return *this; + } + /// This is a convenience function that configures this Config object to write /// temporary files named after the given OutputFileName for each of the LTO /// phases to disk. A client can use this function to implement -save-temps. -- 2.7.4