Add move ops to satisfy MSVC.
authorTeresa Johnson <tejohnson@google.com>
Thu, 11 Aug 2016 17:19:53 +0000 (17:19 +0000)
committerTeresa Johnson <tejohnson@google.com>
Thu, 11 Aug 2016 17:19:53 +0000 (17:19 +0000)
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

index 63a0176..41830f4 100644 (file)
@@ -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.