summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-06-20 18:30:37 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-06-20 18:30:37 +0000
commiteb729e004bed134c61b811286e958815b9c4809f (patch)
tree89da2b7cba708a59a8f0c7fa5008a3d15d129c84
parent3781fbc29a8d808dcb8f2f11da0bbce635629308 (diff)
downloadexternal_llvm-eb729e004bed134c61b811286e958815b9c4809f.zip
external_llvm-eb729e004bed134c61b811286e958815b9c4809f.tar.gz
external_llvm-eb729e004bed134c61b811286e958815b9c4809f.tar.bz2
Use only the filename when deciding if a file is a duplicate.
Matches gnu ar behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184448 91177308-0d34-0410-b5e6-96231b3b80d8
-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 f88d604..2975345 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 941b631..4c98671 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();