summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-ar/llvm-ar.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2019-06-03 16:21:37 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2019-06-03 16:21:37 +0000
commit857de979a7e43f26973351931b93a3879a09ec5a (patch)
tree86b92cc246e83d6b219952bd74d98c4ef79155d7 /llvm/tools/llvm-ar/llvm-ar.cpp
parent009d08f313c46915930ca617946033a487933b73 (diff)
downloadbcm5719-llvm-857de979a7e43f26973351931b93a3879a09ec5a.tar.gz
bcm5719-llvm-857de979a7e43f26973351931b93a3879a09ec5a.zip
Revert "[llvm-ar] Fix relative thin archive path handling"
This reverts commit r362407. It broke compilation of llvm/lib/Object/ArchiveWriter.cpp: error: type 'llvm::sys::path::const_iterator' does not provide a call operator llvm-svn: 362413
Diffstat (limited to 'llvm/tools/llvm-ar/llvm-ar.cpp')
-rw-r--r--llvm/tools/llvm-ar/llvm-ar.cpp38
1 files changed, 9 insertions, 29 deletions
diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp
index 0731f35ac45..04c2396a4fa 100644
--- a/llvm/tools/llvm-ar/llvm-ar.cpp
+++ b/llvm/tools/llvm-ar/llvm-ar.cpp
@@ -464,11 +464,9 @@ static void doDisplayTable(StringRef Name, const object::Archive::Child &C) {
}
if (C.getParent()->isThin()) {
- if (!sys::path::is_absolute(Name)) {
- StringRef ParentDir = sys::path::parent_path(ArchiveName);
- if (!ParentDir.empty())
- outs() << sys::path::convert_to_slash(ParentDir) << '/';
- }
+ StringRef ParentDir = sys::path::parent_path(ArchiveName);
+ if (!ParentDir.empty())
+ outs() << ParentDir << '/';
}
outs() << Name << "\n";
}
@@ -595,18 +593,10 @@ static void addChildMember(std::vector<NewArchiveMember> &Members,
// the archive it's in, so the file resolves correctly.
if (Thin && FlattenArchive) {
StringSaver Saver(Alloc);
- Expected<std::string> FileNameOrErr = M.getName();
+ Expected<std::string> FileNameOrErr = M.getFullName();
failIfError(FileNameOrErr.takeError());
- if (sys::path::is_absolute(*FileNameOrErr)) {
- NMOrErr->MemberName = Saver.save(sys::path::convert_to_slash(*FileNameOrErr));
- } else {
- FileNameOrErr = M.getFullName();
- failIfError(FileNameOrErr.takeError());
- Expected<std::string> PathOrErr =
- computeArchiveRelativePath(ArchiveName, *FileNameOrErr);
- NMOrErr->MemberName = Saver.save(
- PathOrErr ? *PathOrErr : sys::path::convert_to_slash(*FileNameOrErr));
- }
+ NMOrErr->MemberName =
+ Saver.save(computeArchiveRelativePath(ArchiveName, *FileNameOrErr));
}
if (FlattenArchive &&
identify_magic(NMOrErr->Buf->getBuffer()) == file_magic::archive) {
@@ -635,19 +625,9 @@ static void addMember(std::vector<NewArchiveMember> &Members,
// For regular archives, use the basename of the object path for the member
// name. For thin archives, use the full relative paths so the file resolves
// correctly.
- if (!Thin) {
- NMOrErr->MemberName = sys::path::filename(NMOrErr->MemberName);
- } else {
- if (sys::path::is_absolute(FileName))
- NMOrErr->MemberName = Saver.save(sys::path::convert_to_slash(FileName));
- else {
- Expected<std::string> PathOrErr =
- computeArchiveRelativePath(ArchiveName, FileName);
- NMOrErr->MemberName = Saver.save(
- PathOrErr ? *PathOrErr : sys::path::convert_to_slash(FileName));
- }
- }
-
+ NMOrErr->MemberName =
+ Thin ? Saver.save(computeArchiveRelativePath(ArchiveName, FileName))
+ : sys::path::filename(NMOrErr->MemberName);
if (FlattenArchive &&
identify_magic(NMOrErr->Buf->getBuffer()) == file_magic::archive) {
object::Archive &Lib = readLibrary(FileName);
OpenPOWER on IntegriCloud