diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-03 03:13:33 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-03 03:13:33 +0000 |
commit | 895ff83234f035160824e8e3c9862b54a5402cf2 (patch) | |
tree | 86eeba62f8fe334a5d9e69725ee094242c03044f /llvm/lib/Object/MachOObjectFile.cpp | |
parent | 17c6aa0f535777113dfcd4bea967bfb39950e48b (diff) | |
download | llvm-895ff83234f035160824e8e3c9862b54a5402cf2.zip llvm-895ff83234f035160824e8e3c9862b54a5402cf2.tar.gz llvm-895ff83234f035160824e8e3c9862b54a5402cf2.tar.bz2 |
Implement get getSymbolFileOffset with getSymbolAddress.
This has the following advantages:
* Less code.
* The old ELF implementation was wrong for non-relocatable objects.
* The old ELF implementation (and I think MachO) was wrong for thumb.
No current testcase since this is only used from MCJIT and it only uses
relocatable objects and I don't think it supports thumb yet.
llvm-svn: 205508
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/MachOObjectFile.cpp | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 24368df..12132a4 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -479,29 +479,6 @@ error_code MachOObjectFile::getSymbolAddress(DataRefImpl Symb, return object_error::success; } -error_code -MachOObjectFile::getSymbolFileOffset(DataRefImpl Symb, - uint64_t &Res) const { - nlist_base Entry = getSymbolTableEntryBase(this, Symb); - getSymbolAddress(Symb, Res); - if (Entry.n_sect) { - uint64_t Delta; - DataRefImpl SecRel; - SecRel.d.a = Entry.n_sect-1; - if (is64Bit()) { - MachO::section_64 Sec = getSection64(SecRel); - Delta = Sec.offset - Sec.addr; - } else { - MachO::section Sec = getSection(SecRel); - Delta = Sec.offset - Sec.addr; - } - - Res += Delta; - } - - return object_error::success; -} - error_code MachOObjectFile::getSymbolAlignment(DataRefImpl DRI, uint32_t &Result) const { uint32_t flags = getSymbolFlags(DRI); |