<div dir="ltr"><div>Because LTO::run doesn't change HasError, it doesn't make<br></div><div>sense to check that value.</div><div><br></div><div>diff --git a/ELF/LTO.cpp b/ELF/LTO.cpp</div><div>index eb35e18..9c7de9d 100644</div><div>--- a/ELF/LTO.cpp</div><div>+++ b/ELF/LTO.cpp</div><div>@@ -113,34 +113,29 @@ void BitcodeCompiler::add(BitcodeFile &F) {</div><div>   checkError(LtoObj->add(std::move(F.Obj), Resols));</div><div> }</div><div> </div><div> // Merge all the bitcode files we have seen, codegen the result</div><div> // and return the resulting ObjectFile(s).</div><div> std::vector<InputFile *> BitcodeCompiler::compile() {</div><div>   std::vector<InputFile *> Ret;</div><div>   unsigned MaxTasks = LtoObj->getMaxTasks();</div><div>   Buff.resize(MaxTasks);</div><div> </div><div>-  auto AddStream = [&](size_t Task) {</div><div>+  checkError(LtoObj->run([&](size_t Task) {</div><div>     return llvm::make_unique<lto::NativeObjectStream>(</div><div>         llvm::make_unique<llvm::raw_svector_ostream>(Buff[Task]));</div><div>-  };</div><div>-</div><div>-  checkError(LtoObj->run(AddStream));</div><div>-  if (HasError)</div><div>-    return Ret;</div><div>+  }));</div><div> </div><div>   for (unsigned I = 0; I != MaxTasks; ++I) {</div><div>     if (Buff[I].empty())</div><div>       continue;</div><div>     if (Config->SaveTemps) {</div><div>       if (MaxTasks == 1)</div><div>         saveBuffer(Buff[I], Config->OutputFile + ".lto.o");</div><div>       else</div><div>         saveBuffer(Buff[I], Config->OutputFile + Twine(I) + ".lto.o");</div><div>     }<br></div></div>