Handle Archive::getNumberOfSymbols being called in an archive with no symbols.

No change in llvm, but will be tested from lld.

llvm-svn: 249709
This commit is contained in:
Rafael Espindola
2015-10-08 18:06:20 +00:00
parent dd4aa9b6b5
commit 483ad20009

View File

@@ -510,12 +510,12 @@ Archive::symbol_iterator Archive::symbol_begin() const {
}
Archive::symbol_iterator Archive::symbol_end() const {
if (!hasSymbolTable())
return symbol_iterator(Symbol(this, 0, 0));
return symbol_iterator(Symbol(this, getNumberOfSymbols(), 0));
}
uint32_t Archive::getNumberOfSymbols() const {
if (!hasSymbolTable())
return 0;
const char *buf = getSymbolTable().begin();
if (kind() == K_GNU)
return read32be(buf);