diff options
| author | Dmitri Gribenko <gribozavr@gmail.com> | 2019-06-03 16:21:37 +0000 |
|---|---|---|
| committer | Dmitri Gribenko <gribozavr@gmail.com> | 2019-06-03 16:21:37 +0000 |
| commit | 857de979a7e43f26973351931b93a3879a09ec5a (patch) | |
| tree | 86b92cc246e83d6b219952bd74d98c4ef79155d7 /llvm/tools/llvm-ar/llvm-ar.cpp | |
| parent | 009d08f313c46915930ca617946033a487933b73 (diff) | |
| download | bcm5719-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.cpp | 38 |
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); |

