mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-19 00:14:20 +00:00
Fix reading archive members with / in the name.
This is important for thin archives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242082 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
045b2171c4
commit
f2343bd953
@ -162,10 +162,10 @@ ErrorOr<StringRef> Archive::Child::getName() const {
|
||||
+ Parent->StringTable->getSize()))
|
||||
return object_error::parse_failed;
|
||||
|
||||
// GNU long file names end with a /.
|
||||
// GNU long file names end with a "/\n".
|
||||
if (Parent->kind() == K_GNU || Parent->kind() == K_MIPS64) {
|
||||
StringRef::size_type End = StringRef(addr).find('/');
|
||||
return StringRef(addr, End);
|
||||
StringRef::size_type End = StringRef(addr).find('\n');
|
||||
return StringRef(addr, End - 1);
|
||||
}
|
||||
return StringRef(addr);
|
||||
} else if (name.startswith("#1/")) {
|
||||
|
@ -38,3 +38,9 @@ THIN-NEXT: rw-r--r-- 1000/1000 2280 2014-12-16 00:56:27.000000000 IsNAN.o
|
||||
Test reading an archive with just a symbol table. We use to reject them.
|
||||
RUN: llvm-ar tv %p/Inputs/symtab-only.a | FileCheck --allow-empty --check-prefix=EMPTY %s
|
||||
EMPTY-NOT: {{.}}
|
||||
|
||||
Test reading a thin archive with directory names.
|
||||
RUN: env TZ=GMT llvm-ar tv %p/Inputs/thin-path.a | FileCheck %s --check-prefix=THINPATH -strict-whitespace
|
||||
|
||||
THINPATH: rw-r--r-- 0/0 1224 1970-01-01 00:00:00.000000000 test.o
|
||||
THINPATH-NEXT: rw-r--r-- 0/0 1224 1970-01-01 00:00:00.000000000 t/test2.o
|
||||
|
Loading…
x
Reference in New Issue
Block a user