diff options
Diffstat (limited to 'tools/llvm-readobj/COFFDumper.cpp')
-rw-r--r-- | tools/llvm-readobj/COFFDumper.cpp | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/tools/llvm-readobj/COFFDumper.cpp b/tools/llvm-readobj/COFFDumper.cpp index 9f00fe1984..1a360f5bed 100644 --- a/tools/llvm-readobj/COFFDumper.cpp +++ b/tools/llvm-readobj/COFFDumper.cpp @@ -171,22 +171,6 @@ static unsigned getNumUsedSlots(const UnwindCode &UnwindCode) { } } -// Given a symbol sym this functions returns the address and section of it. -static error_code resolveSectionAndAddress(const COFFObjectFile *Obj, - const SymbolRef &Sym, - const coff_section *&ResolvedSection, - uint64_t &ResolvedAddr) { - if (error_code EC = Sym.getAddress(ResolvedAddr)) - return EC; - - section_iterator iter(Obj->section_begin()); - if (error_code EC = Sym.getSection(iter)) - return EC; - - ResolvedSection = Obj->getCOFFSection(*iter); - return object_error::success; -} - // Given a a section and an offset into this section the function returns the // symbol used for the relocation at the offset. error_code COFFDumper::resolveSymbol(const coff_section *Section, @@ -471,10 +455,14 @@ error_code COFFDumper::resolveRelocation(const coff_section *Section, if (error_code EC = resolveSymbol(Section, Offset, Sym)) return EC; - if (error_code EC = resolveSectionAndAddress(Obj, Sym, ResolvedSection, - ResolvedAddress)) + if (error_code EC = Sym.getAddress(ResolvedAddr)) + return EC; + + section_iterator SI(Obj->section_begin()); + if (error_code EC = Sym.getSection(SI)) return EC; + ResolvedSection = Obj->getCOFFSection(*SI); return object_error::success; } |