From bd3306aecb3a15e8967143b8cdbbccf2b1b19b74 Mon Sep 17 00:00:00 2001 From: patrick Date: Sat, 14 Jan 2017 19:55:43 +0000 Subject: Import LLVM 3.9.1 including clang and lld. --- .../lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp') diff --git a/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp b/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp index e3146245984..f6940080089 100644 --- a/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp +++ b/gnu/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "SymbolizableObjectFile.h" +#include "llvm/Object/COFF.h" #include "llvm/Object/SymbolSize.h" #include "llvm/Support/DataExtractor.h" #include "llvm/DebugInfo/DWARF/DWARFContext.h" @@ -119,12 +120,15 @@ std::error_code SymbolizableObjectFile::addSymbol(const SymbolRef &Symbol, uint64_t SymbolSize, DataExtractor *OpdExtractor, uint64_t OpdAddress) { - SymbolRef::Type SymbolType = Symbol.getType(); + Expected SymbolTypeOrErr = Symbol.getType(); + if (!SymbolTypeOrErr) + return errorToErrorCode(SymbolTypeOrErr.takeError()); + SymbolRef::Type SymbolType = *SymbolTypeOrErr; if (SymbolType != SymbolRef::ST_Function && SymbolType != SymbolRef::ST_Data) return std::error_code(); - ErrorOr SymbolAddressOrErr = Symbol.getAddress(); - if (auto EC = SymbolAddressOrErr.getError()) - return EC; + Expected SymbolAddressOrErr = Symbol.getAddress(); + if (!SymbolAddressOrErr) + return errorToErrorCode(SymbolAddressOrErr.takeError()); uint64_t SymbolAddress = *SymbolAddressOrErr; if (OpdExtractor) { // For big-endian PowerPC64 ELF, symbols in the .opd section refer to @@ -138,9 +142,9 @@ std::error_code SymbolizableObjectFile::addSymbol(const SymbolRef &Symbol, OpdExtractor->isValidOffsetForAddress(OpdOffset32)) SymbolAddress = OpdExtractor->getAddress(&OpdOffset32); } - ErrorOr SymbolNameOrErr = Symbol.getName(); - if (auto EC = SymbolNameOrErr.getError()) - return EC; + Expected SymbolNameOrErr = Symbol.getName(); + if (!SymbolNameOrErr) + return errorToErrorCode(SymbolNameOrErr.takeError()); StringRef SymbolName = *SymbolNameOrErr; // Mach-O symbol table names have leading underscore, skip it. if (Module->isMachO() && SymbolName.size() > 0 && SymbolName[0] == '_') -- cgit v1.2.3-59-g8ed1b