[llvm] r318127 - Use TempFile in llvm-ar. NFC.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 13 17:21:15 PST 2017
Author: rafael
Date: Mon Nov 13 17:21:15 2017
New Revision: 318127
URL: http://llvm.org/viewvc/llvm-project?rev=318127&view=rev
Log:
Use TempFile in llvm-ar. NFC.
Modified:
llvm/trunk/lib/Object/ArchiveWriter.cpp
Modified: llvm/trunk/lib/Object/ArchiveWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/ArchiveWriter.cpp?rev=318127&r1=318126&r2=318127&view=diff
==============================================================================
--- llvm/trunk/lib/Object/ArchiveWriter.cpp (original)
+++ llvm/trunk/lib/Object/ArchiveWriter.cpp Mon Nov 13 17:21:15 2017
@@ -488,14 +488,12 @@ Error llvm::writeArchive(StringRef ArcNa
Kind = object::Archive::K_GNU64;
}
- SmallString<128> TmpArchive;
- int TmpArchiveFD;
- if (auto EC = sys::fs::createUniqueFile(ArcName + ".temp-archive-%%%%%%%.a",
- TmpArchiveFD, TmpArchive))
- return errorCodeToError(EC);
+ Expected<sys::fs::TempFile> Temp =
+ sys::fs::TempFile::create(ArcName + ".temp-archive-%%%%%%%.a");
+ if (!Temp)
+ return Temp.takeError();
- ToolOutputFile Output(TmpArchive, TmpArchiveFD);
- raw_fd_ostream &Out = Output.os();
+ raw_fd_ostream Out(Temp->FD, false);
if (Thin)
Out << "!<thin>\n";
else
@@ -507,8 +505,7 @@ Error llvm::writeArchive(StringRef ArcNa
for (const MemberData &M : Data)
Out << M.Header << M.Data << M.Padding;
- Output.keep();
- Out.close();
+ Out.flush();
// At this point, we no longer need whatever backing memory
// was used to generate the NewMembers. On Windows, this buffer
@@ -522,6 +519,5 @@ Error llvm::writeArchive(StringRef ArcNa
// closed before we attempt to rename.
OldArchiveBuf.reset();
- sys::fs::rename(TmpArchive, ArcName);
- return Error::success();
+ return Temp->keep(ArcName);
}
More information about the llvm-commits
mailing list