diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-10-08 18:06:20 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-10-08 18:06:20 +0000 |
commit | 483ad20009f058d5c57641899e4fc850635973b7 (patch) | |
tree | 5171fd59bfc09f20516ab21f19c2e00b4794ec97 /llvm/lib/Object/Archive.cpp | |
parent | dd4aa9b6b5fe4eb4d029b294ef2592c95f360087 (diff) | |
download | bcm5719-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.cpp | 4 |
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); |