diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-25 12:28:45 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-25 12:28:45 +0000 |
commit | 1e4838796213b8f6cb6d9a5c15e0de2649344ef8 (patch) | |
tree | 5128842f1826329e1e706652599173d4e52ca4b2 /llvm/tools/llvm-readobj/ELFDumper.cpp | |
parent | bff5956cfaf1cb80b5736e5ee550889775ac185d (diff) | |
download | llvm-1e4838796213b8f6cb6d9a5c15e0de2649344ef8.zip llvm-1e4838796213b8f6cb6d9a5c15e0de2649344ef8.tar.gz llvm-1e4838796213b8f6cb6d9a5c15e0de2649344ef8.tar.bz2 |
Clarify getRelocationAddress x getRelocationOffset a bit.
getRelocationAddress is for dynamic libraries and executables,
getRelocationOffset for relocatable objects.
Mark the getRelocationAddress of COFF and MachO as not implemented yet. Add a
test of ELF's. llvm-readobj -r now prints the same values as readelf -r.
llvm-svn: 180259
Diffstat (limited to 'llvm/tools/llvm-readobj/ELFDumper.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/ELFDumper.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index f771cbd..ea1b83f 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -582,7 +582,11 @@ void ELFDumper<ELFT>::printRelocation(section_iterator Sec, int64_t Info; StringRef SymbolName; SymbolRef Symbol; - if (error(RelI->getOffset(Offset))) return; + if (Obj->getElfHeader()->e_type == ELF::ET_REL){ + if (error(RelI->getOffset(Offset))) return; + } else { + if (error(RelI->getAddress(Offset))) return; + } if (error(RelI->getType(RelocType))) return; if (error(RelI->getTypeName(RelocName))) return; if (error(RelI->getAdditionalInfo(Info))) return; |