summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-symbolizer
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-03 18:19:00 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-03 18:19:00 +0000
commited067c45d4b668db740fbb1728200fc51f4b9b51 (patch)
treecc50ae3d78954ad1e634cbd4278eec6095a50bdb /llvm/tools/llvm-symbolizer
parente2df87f24b0af7fa80789e8da15c9cef9e6996f7 (diff)
downloadbcm5719-llvm-ed067c45d4b668db740fbb1728200fc51f4b9b51.tar.gz
bcm5719-llvm-ed067c45d4b668db740fbb1728200fc51f4b9b51.zip
Return ErrorOr from getSymbolAddress.
It can fail trying to get the section on ELF and COFF. This makes sure the error is handled. llvm-svn: 241366
Diffstat (limited to 'llvm/tools/llvm-symbolizer')
-rw-r--r--llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp b/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp
index ec3fe4868db..76f92f42921 100644
--- a/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp
+++ b/llvm/tools/llvm-symbolizer/LLVMSymbolize.cpp
@@ -84,9 +84,11 @@ void ModuleInfo::addSymbol(const SymbolRef &Symbol, uint64_t SymbolSize,
SymbolRef::Type SymbolType = Symbol.getType();
if (SymbolType != SymbolRef::ST_Function && SymbolType != SymbolRef::ST_Data)
return;
- uint64_t SymbolAddress;
- if (error(Symbol.getAddress(SymbolAddress)) ||
- SymbolAddress == UnknownAddress)
+ ErrorOr<uint64_t> SymbolAddressOrErr = Symbol.getAddress();
+ if (error(SymbolAddressOrErr.getError()))
+ return;
+ uint64_t SymbolAddress = *SymbolAddressOrErr;
+ if (SymbolAddress == UnknownAddress)
return;
if (OpdExtractor) {
// For big-endian PowerPC64 ELF, symbols in the .opd section refer to
OpenPOWER on IntegriCloud