summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Object/ArchiveWriter.cpp6
-rw-r--r--llvm/test/Object/Inputs/pr25877.libbin0 -> 774 bytes
-rw-r--r--llvm/test/Object/pr25877.test9
3 files changed, 13 insertions, 2 deletions
diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp
index f207dfb0876..c7343fdc171 100644
--- a/llvm/lib/Object/ArchiveWriter.cpp
+++ b/llvm/lib/Object/ArchiveWriter.cpp
@@ -415,8 +415,10 @@ llvm::writeArchive(StringRef ArcName,
ErrorOr<uint32_t> Size = OldMember.getSize();
if (std::error_code EC = Size.getError())
return std::make_pair("", EC);
- printMemberHeader(Out, Kind, Thin, I.getName(), StringMapIndexIter,
- ModTime, UID, GID, Perms, Size.get());
+ StringRef FileName = I.getName();
+ printMemberHeader(Out, Kind, Thin, sys::path::filename(FileName),
+ StringMapIndexIter, ModTime, UID, GID, Perms,
+ Size.get());
}
if (!Thin)
diff --git a/llvm/test/Object/Inputs/pr25877.lib b/llvm/test/Object/Inputs/pr25877.lib
new file mode 100644
index 00000000000..401cbeb172a
--- /dev/null
+++ b/llvm/test/Object/Inputs/pr25877.lib
Binary files differ
diff --git a/llvm/test/Object/pr25877.test b/llvm/test/Object/pr25877.test
new file mode 100644
index 00000000000..c323d6259fa
--- /dev/null
+++ b/llvm/test/Object/pr25877.test
@@ -0,0 +1,9 @@
+; RUN: echo create %t.a > %t.mri
+; RUN: echo addlib %p/Inputs/pr25877.lib >> %t.mri
+; RUN: echo save >> %t.mri
+; RUN: echo end >> %t.mri
+
+; RUN: llvm-ar -M < %t.mri
+; RUN: llvm-ar t %t.a | FileCheck %s
+
+; CHECK: foo.obj
OpenPOWER on IntegriCloud