mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
[Object][Archive] Apparently StringRef::getAsInteger for APInt accepts spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172022 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1db9b6957c
commit
bf82b07f5f
@ -49,7 +49,7 @@ struct ArchiveMemberHeader {
|
|||||||
|
|
||||||
uint64_t getSize() const {
|
uint64_t getSize() const {
|
||||||
uint64_t ret;
|
uint64_t ret;
|
||||||
StringRef(Size, sizeof(Size)).getAsInteger(10, ret);
|
StringRef(Size, sizeof(Size)).rtrim(" ").getAsInteger(10, ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -110,7 +110,7 @@ error_code Archive::Child::getName(StringRef &Result) const {
|
|||||||
}
|
}
|
||||||
// It's a long name.
|
// It's a long name.
|
||||||
// Get the offset.
|
// Get the offset.
|
||||||
uint64_t offset;
|
std::size_t offset;
|
||||||
name.substr(1).getAsInteger(10, offset);
|
name.substr(1).getAsInteger(10, offset);
|
||||||
const char *addr = Parent->StringTable->Data.begin()
|
const char *addr = Parent->StringTable->Data.begin()
|
||||||
+ sizeof(ArchiveMemberHeader)
|
+ sizeof(ArchiveMemberHeader)
|
||||||
@ -218,6 +218,10 @@ Archive::Archive(MemoryBuffer *source, error_code &ec)
|
|||||||
SymbolTable = i;
|
SymbolTable = i;
|
||||||
StringTable = e;
|
StringTable = e;
|
||||||
if (i != e) ++i;
|
if (i != e) ++i;
|
||||||
|
if (i == e) {
|
||||||
|
ec = object_error::parse_failed;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ((ec = i->getName(name)))
|
if ((ec = i->getName(name)))
|
||||||
return;
|
return;
|
||||||
if (name[0] != '/') {
|
if (name[0] != '/') {
|
||||||
|
Loading…
Reference in New Issue
Block a user