summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-15 23:15:33 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-15 23:15:33 +0000
commit57c0525d2cfbbceb8a8cb056b3874ad5b3f5606a (patch)
tree5112130286cdd5eb2d0b49120c43636da0fdcd33 /llvm
parent759c8aa9a0226fa14462f59e68a7914a9f3b9600 (diff)
downloadbcm5719-llvm-57c0525d2cfbbceb8a8cb056b3874ad5b3f5606a.tar.gz
bcm5719-llvm-57c0525d2cfbbceb8a8cb056b3874ad5b3f5606a.zip
llvm-ar: Don't write the directory in the string table.
We were already doing the right thing for short file names, but not long ones. llvm-svn: 242354
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Object/ArchiveWriter.cpp2
-rw-r--r--llvm/test/Object/archive-format.test15
2 files changed, 13 insertions, 4 deletions
diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp
index bd372c37b8f..fd06c6e8687 100644
--- a/llvm/lib/Object/ArchiveWriter.cpp
+++ b/llvm/lib/Object/ArchiveWriter.cpp
@@ -160,7 +160,7 @@ static void writeStringTable(raw_fd_ostream &Out,
bool Thin) {
unsigned StartOffset = 0;
for (const NewArchiveIterator &I : Members) {
- StringRef Name = I.getName();
+ StringRef Name = sys::path::filename(I.getName());
if (!useStringTable(Thin, Name))
continue;
if (StartOffset == 0) {
diff --git a/llvm/test/Object/archive-format.test b/llvm/test/Object/archive-format.test
index 376eb053c6d..e40ec332734 100644
--- a/llvm/test/Object/archive-format.test
+++ b/llvm/test/Object/archive-format.test
@@ -6,17 +6,26 @@ RUN: cd %t
RUN: echo -n bar. > 0123456789abcde
RUN: echo -n zed. > 0123456789abcdef
+RUN: mkdir -p foo
+RUN: echo -n bar2 > foo/0123456789abcde
+RUN: echo -n zed2 > foo/0123456789abcdef
RUN: rm -f %t.a
-RUN: llvm-ar --format=gnu rc %t.a 0123456789abcde 0123456789abcdef
+RUN: llvm-ar --format=gnu rc %t.a 0123456789abcde 0123456789abcdef foo/0123456789abcde foo/0123456789abcdef
RUN: cat %t.a | FileCheck -strict-whitespace %s
CHECK: !<arch>
-CHECK-NEXT: // 18 `
+CHECK-NEXT: // 36 `
+CHECK-NEXT: 0123456789abcdef/
CHECK-NEXT: 0123456789abcdef/
CHECK-NEXT: 0123456789abcde/0 0 0 644 4 `
-CHECK-NEXT: bar./0 0 0 0 644 4 `
+CHECK-NEXT: bar.
+CHECK-SAME: /0 0 0 0 644 4 `
CHECK-NEXT: zed.
+CHECK-SAME: 0123456789abcde/0 0 0 644 4 `
+CHECK-NEXT: bar2
+CHECK-SAME: /18 0 0 0 644 4 `
+CHECK-NEXT: zed2
RUN: rm -f %t.a
RUN: llvm-ar --format=bsd rc %t.a 0123456789abcde 0123456789abcdef
OpenPOWER on IntegriCloud