diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-15 23:15:33 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-15 23:15:33 +0000 |
commit | 57c0525d2cfbbceb8a8cb056b3874ad5b3f5606a (patch) | |
tree | 5112130286cdd5eb2d0b49120c43636da0fdcd33 /llvm | |
parent | 759c8aa9a0226fa14462f59e68a7914a9f3b9600 (diff) | |
download | bcm5719-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.cpp | 2 | ||||
-rw-r--r-- | llvm/test/Object/archive-format.test | 15 |
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 |