aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Object/MachO.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-04-11 02:21:31 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-04-11 02:21:31 +0000
commit8bf80061ba44af16b4597627ca7d6d7fc1bed64e (patch)
treefb8ecf30dd70e1d29f6a02346356100888d2e6a9 /include/llvm/Object/MachO.h
parent4b040294816e49413c739825d801042bc76171a7 (diff)
downloadexternal_llvm-8bf80061ba44af16b4597627ca7d6d7fc1bed64e.zip
external_llvm-8bf80061ba44af16b4597627ca7d6d7fc1bed64e.tar.gz
external_llvm-8bf80061ba44af16b4597627ca7d6d7fc1bed64e.tar.bz2
Fix MachO's getRelocationAdditionalInfo.
It was returning the loaded address of the section containing the relocation, which really doesn't seem to be the intent of this function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179255 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Object/MachO.h')
-rw-r--r--include/llvm/Object/MachO.h20
1 files changed, 2 insertions, 18 deletions
diff --git a/include/llvm/Object/MachO.h b/include/llvm/Object/MachO.h
index 49800fc..b02e1ac 100644
--- a/include/llvm/Object/MachO.h
+++ b/include/llvm/Object/MachO.h
@@ -271,6 +271,8 @@ protected:
virtual error_code getLibraryNext(DataRefImpl LibData, LibraryRef &Res) const;
virtual error_code getLibraryPath(DataRefImpl LibData, StringRef &Res) const;
+ virtual error_code getRelocationAdditionalInfo(DataRefImpl Rel,
+ int64_t &Res) const;
std::size_t getSectionIndex(DataRefImpl Sec) const;
@@ -346,8 +348,6 @@ public:
virtual error_code getRelocationAddress(DataRefImpl Rel, uint64_t &Res) const;
virtual error_code getRelocationOffset(DataRefImpl Rel, uint64_t &Res) const;
virtual error_code getRelocationSymbol(DataRefImpl Rel, SymbolRef &Res) const;
- virtual error_code getRelocationAdditionalInfo(DataRefImpl Rel,
- int64_t &Res) const;
virtual error_code getRelocationType(DataRefImpl Rel, uint64_t &Res) const;
virtual error_code getRelocationTypeName(DataRefImpl Rel,
SmallVectorImpl<char> &Result) const;
@@ -532,22 +532,6 @@ MachOObjectFile<MachOT>::getRelocationSymbol(DataRefImpl Rel,
}
template<class MachOT>
-error_code
-MachOObjectFile<MachOT>::getRelocationAdditionalInfo(DataRefImpl Rel,
- int64_t &Res) const {
- const RelocationEntry *RE = getRelocation(Rel);
- bool isExtern = (RE->Word1 >> 27) & 1;
- Res = 0;
- if (!isExtern) {
- const uint8_t* sectAddress = base();
- const Section *Sect = getSection(Sections[Rel.d.b]);
- sectAddress += Sect->Offset;
- Res = reinterpret_cast<uintptr_t>(sectAddress);
- }
- return object_error::success;
-}
-
-template<class MachOT>
error_code MachOObjectFile<MachOT>::getRelocationType(DataRefImpl Rel,
uint64_t &Res) const {
const RelocationEntry *RE = getRelocation(Rel);