]> granicus.if.org Git - llvm/commitdiff
[llvm-ar] Remove leading slash when printing thin archive members
authorJordan Rupprecht <rupprecht@google.com>
Wed, 6 Feb 2019 21:50:45 +0000 (21:50 +0000)
committerJordan Rupprecht <rupprecht@google.com>
Wed, 6 Feb 2019 21:50:45 +0000 (21:50 +0000)
Reviewers: ruiu

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57845

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353347 91177308-0d34-0410-b5e6-96231b3b80d8

test/tools/llvm-ar/print-thin-archive-path.test [new file with mode: 0644]
tools/llvm-ar/llvm-ar.cpp

diff --git a/test/tools/llvm-ar/print-thin-archive-path.test b/test/tools/llvm-ar/print-thin-archive-path.test
new file mode 100644 (file)
index 0000000..f6cb0cf
--- /dev/null
@@ -0,0 +1,10 @@
+RUN: mkdir -p %t/foo
+RUN: touch %t/foo/a.txt
+RUN: rm -f %t/foo/archive.a
+
+RUN: cd %t && llvm-ar rcST foo/archive.a foo/a.txt
+RUN: cd %t && llvm-ar t foo/archive.a | FileCheck %s --match-full-lines --check-prefix=PARENT-DIR
+RUN: cd %t/foo && llvm-ar t archive.a | FileCheck %s --match-full-lines --check-prefix=CHILD-DIR
+
+PARENT-DIR: foo/a.txt
+CHILD-DIR:  a.txt
index 99dc7fdd6d7bc58b1ac4aba7dfeac2e8224dfd2c..0119ec502e55d2aaab9ab56632f2d560bb9fba9b 100644 (file)
@@ -429,8 +429,9 @@ static void doDisplayTable(StringRef Name, const object::Archive::Child &C) {
   }
 
   if (C.getParent()->isThin()) {
-    outs() << sys::path::parent_path(ArchiveName);
-    outs() << '/';
+    StringRef ParentDir = sys::path::parent_path(ArchiveName);
+    if (!ParentDir.empty())
+      outs() << ParentDir << '/';
   }
   outs() << Name << "\n";
 }