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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180259 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2013-04-25 12:28:45 +00:00
parent 02066838b5
commit 956ca7265c
11 changed files with 54 additions and 58 deletions

View File

@@ -789,21 +789,7 @@ MachOObjectFile::getSectionRelEnd(DataRefImpl Sec) const {
error_code
MachOObjectFile::getRelocationAddress(DataRefImpl Rel, uint64_t &Res) const {
uint64_t SectAddress;
DataRefImpl Sec;
Sec.d.a = Rel.d.b;
if (is64Bit()) {
macho::Section64 Sect = getSection64(Sec);
SectAddress = Sect.Address;
} else {
macho::Section Sect = getSection(Sec);
SectAddress = Sect.Address;
}
macho::RelocationEntry RE = getRelocation(Rel);
uint64_t RelAddr = getAnyRelocationAddress(RE);
Res = SectAddress + RelAddr;
return object_error::success;
report_fatal_error("getRelocationAddress not implemented in MachOObjectFile");
}
error_code MachOObjectFile::getRelocationOffset(DataRefImpl Rel,