summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/Archive.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-10-08 18:06:20 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-10-08 18:06:20 +0000
commit483ad20009f058d5c57641899e4fc850635973b7 (patch)
tree5171fd59bfc09f20516ab21f19c2e00b4794ec97 /llvm/lib/Object/Archive.cpp
parentdd4aa9b6b5fe4eb4d029b294ef2592c95f360087 (diff)
downloadbcm5719-llvm-483ad20009f058d5c57641899e4fc850635973b7.tar.gz
bcm5719-llvm-483ad20009f058d5c57641899e4fc850635973b7.zip
Handle Archive::getNumberOfSymbols being called in an archive with no symbols.
No change in llvm, but will be tested from lld. llvm-svn: 249709
Diffstat (limited to 'llvm/lib/Object/Archive.cpp')
-rw-r--r--llvm/lib/Object/Archive.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp
index 941f72bb6a6..42fec39851d 100644
--- a/llvm/lib/Object/Archive.cpp
+++ b/llvm/lib/Object/Archive.cpp
@@ -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);
OpenPOWER on IntegriCloud