diff options
Diffstat (limited to 'contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp')
| -rw-r--r-- | contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp b/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp index 001097e56c71..861dd313fb09 100644 --- a/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp +++ b/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp @@ -8,17 +8,20 @@  //===----------------------------------------------------------------------===//  #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h" +#include "llvm/DebugInfo/DWARF/DWARFContext.h"  using namespace llvm;  uint64_t DWARFDataExtractor::getRelocatedValue(uint32_t Size, uint32_t *Off,                                                 uint64_t *SecNdx) const { -  if (!RelocMap) +  if (SecNdx) +    *SecNdx = -1ULL; +  if (!Section)      return getUnsigned(Off, Size); -  RelocAddrMap::const_iterator AI = RelocMap->find(*Off); -  if (AI == RelocMap->end()) +  Optional<RelocAddrEntry> Rel = Obj->find(*Section, *Off); +  if (!Rel)      return getUnsigned(Off, Size);    if (SecNdx) -    *SecNdx = AI->second.SectionIndex; -  return getUnsigned(Off, Size) + AI->second.Value; +    *SecNdx = Rel->SectionIndex; +  return getUnsigned(Off, Size) + Rel->Value;  }  | 
