summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Archive/directory.ll2
-rw-r--r--tools/llvm-ar/llvm-ar.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/test/Archive/directory.ll b/test/Archive/directory.ll
index f88d604a23..2975345226 100644
--- a/test/Archive/directory.ll
+++ b/test/Archive/directory.ll
@@ -4,7 +4,9 @@
;RUN: rm -f %T/test.a
;RUN: touch %T/a-very-long-file-name
;RUN: llvm-ar r %T/test.a %s %T/a-very-long-file-name
+;RUN: llvm-ar r %T/test.a %T/a-very-long-file-name
;RUN: llvm-ar t %T/test.a | FileCheck -check-prefix=MEMBERS %s
;MEMBERS-NOT: /
;MEMBERS: a-very-long-file-name
;MEMBERS: directory.ll
+;MEMBERS-NOT: a-very-long-file-name
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index 941b631080..4c986715ae 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -563,7 +563,7 @@ doReplaceOrInsert(std::string* ErrMsg) {
std::set<std::string>::iterator found = remaining.end();
for (std::set<std::string>::iterator RI = remaining.begin(),
RE = remaining.end(); RI != RE; ++RI ) {
- std::string compare(*RI);
+ std::string compare(sys::path::filename(*RI));
if (TruncateNames && compare.length() > 15) {
const char* nm = compare.c_str();
unsigned len = compare.length();