Commit 8e464dd7 authored by Duncan P. N. Exon Smith's avatar Duncan P. N. Exon Smith
Browse files

Frontend: Use early returns in CompilerInstance::clearOutputFiles, NFC

Use early returns in `CompilerInstance::clearOutputFiles` to clarify the
logic, and rename `ec` to `EC` as a drive-by.

No functionality change.
parent e4871c1e
Loading
Loading
Loading
Loading
+22 −17
Original line number Diff line number Diff line
@@ -648,26 +648,31 @@ void CompilerInstance::createSema(TranslationUnitKind TUKind,

void CompilerInstance::clearOutputFiles(bool EraseFiles) {
  for (OutputFile &OF : OutputFiles) {
    if (!OF.TempFilename.empty()) {
    if (EraseFiles) {
      if (!OF.TempFilename.empty()) {
        llvm::sys::fs::remove(OF.TempFilename);
      } else {
        SmallString<128> NewOutFile(OF.Filename);
        continue;
      }
      if (!OF.Filename.empty())
        llvm::sys::fs::remove(OF.Filename);
      continue;
    }

    if (OF.TempFilename.empty())
      continue;

    // If '-working-directory' was passed, the output filename should be
    // relative to that.
    SmallString<128> NewOutFile(OF.Filename);
    FileMgr->FixupRelativePath(NewOutFile);
        if (std::error_code ec =
                llvm::sys::fs::rename(OF.TempFilename, NewOutFile)) {
    std::error_code EC = llvm::sys::fs::rename(OF.TempFilename, NewOutFile);
    if (!EC)
      continue;
    getDiagnostics().Report(diag::err_unable_to_rename_temp)
            << OF.TempFilename << OF.Filename << ec.message();
        << OF.TempFilename << OF.Filename << EC.message();

    llvm::sys::fs::remove(OF.TempFilename);
  }
      }
    } else if (!OF.Filename.empty() && EraseFiles)
      llvm::sys::fs::remove(OF.Filename);
  }
  OutputFiles.clear();
  if (DeleteBuiltModules) {
    for (auto &Module : BuiltModules)