diff options
-rw-r--r-- | llvm/lib/Object/ArchiveWriter.cpp | 6 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/pr25877.lib | bin | 0 -> 774 bytes | |||
-rw-r--r-- | llvm/test/Object/pr25877.test | 9 |
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 Binary files differnew file mode 100644 index 00000000000..401cbeb172a --- /dev/null +++ b/llvm/test/Object/Inputs/pr25877.lib 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 |