[dsymutil] Fix conversion between unique_ptr and Expected
authorJonas Devlieghere <jonas@devlieghere.com>
Thu, 21 May 2020 18:41:20 +0000 (11:41 -0700)
committerJonas Devlieghere <jonas@devlieghere.com>
Thu, 21 May 2020 18:42:04 +0000 (11:42 -0700)
Reproducer.cpp:70:12: error: could not convert ‘Repro’ from
‘std::unique_ptr<llvm::dsymutil::ReproducerGenerate,
std::default_delete<llvm::dsymutil::ReproducerGenerate> >’ to
‘llvm::Expected<std::unique_ptr<llvm::dsymutil::Reproducer> >’

llvm/tools/dsymutil/Reproducer.cpp

index 53e4bda..448736d 100644 (file)
@@ -6,8 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Support/Path.h"
 #include "Reproducer.h"
+#include "llvm/Support/Path.h"
 
 using namespace llvm;
 using namespace llvm::dsymutil;
@@ -64,17 +64,19 @@ Reproducer::createReproducer(ReproducerMode Mode, StringRef Root) {
   switch (Mode) {
   case ReproducerMode::Generate: {
     std::error_code EC;
-    auto Repro = std::make_unique<ReproducerGenerate>(EC);
+    std::unique_ptr<Reproducer> Repro =
+        std::make_unique<ReproducerGenerate>(EC);
     if (EC)
       return errorCodeToError(EC);
-    return Repro;
+    return std::move(Repro);
   }
   case ReproducerMode::Use: {
     std::error_code EC;
-    auto Repro = std::make_unique<ReproducerUse>(Root, EC);
+    std::unique_ptr<Reproducer> Repro =
+        std::make_unique<ReproducerUse>(Root, EC);
     if (EC)
       return errorCodeToError(EC);
-    return Repro;
+    return std::move(Repro);
   }
   case ReproducerMode::Off:
     return std::make_unique<Reproducer>();