diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-12 22:22:34 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-07-12 22:22:34 +0000 |
commit | 6383ef98fae2bab4595c6c36394093b7ad4a5597 (patch) | |
tree | 8158b5866835964815da2fa8a676ef76c6ecfeda | |
parent | 16404cc817e8b8d3fbfbc9051394eb59d7c5ffb4 (diff) | |
download | llvm-6383ef98fae2bab4595c6c36394093b7ad4a5597.tar.gz llvm-6383ef98fae2bab4595c6c36394093b7ad4a5597.tar.bz2 llvm-6383ef98fae2bab4595c6c36394093b7ad4a5597.tar.xz |
Fix a off by one error about which members need to use the string table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186216 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/Object/archive-format.test | 22 | ||||
-rw-r--r-- | tools/llvm-ar/llvm-ar.cpp | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/test/Object/archive-format.test b/test/Object/archive-format.test new file mode 100644 index 0000000000..9ac2d63494 --- /dev/null +++ b/test/Object/archive-format.test @@ -0,0 +1,22 @@ +Test the exact archive format. In particular, test which file names use the +string table or not. + +REQUIRES: shell + +RUN: mkdir -p %t +RUN: cd %t + +RUN: echo bar > 0123456789abcde +RUN: echo zed > 0123456789abcdef + +RUN: rm -f test.a +RUN: llvm-ar rc test.a 0123456789abcde 0123456789abcdef +RUN: cat test.a | FileCheck -strict-whitespace %s + +CHECK: !<arch> +CHECK-NEXT: // 18 ` +CHECK-NEXT: 0123456789abcdef/ +CHECK-NEXT: 0123456789abcde/{{.*}} 1000 1000 100664 4 ` +CHECK-NEXT: bar +CHECK-NEXT: /0 {{.*}} 1000 1000 100664 4 ` +CHECK-NEXT: zed diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index ab2a2f18ec..5f47654b24 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -419,7 +419,7 @@ StringRef NewArchiveIterator::getNew() const { template <typename T> void addMember(std::vector<NewArchiveIterator> &Members, std::string &StringTable, T I, StringRef Name) { - if (Name.size() < 15) { + if (Name.size() < 16) { NewArchiveIterator NI(I, Twine(Name) + "/"); Members.push_back(NI); } else { |