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/COFFObjectFile.cpp | |
parent | 17c6aa0f535777113dfcd4bea967bfb39950e48b (diff) | |
download | bcm5719-llvm-895ff83234f035160824e8e3c9862b54a5402cf2.tar.gz bcm5719-llvm-895ff83234f035160824e8e3c9862b54a5402cf2.zip |
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/COFFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index cb3d478ff39..a75ebbf2a7c 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -135,22 +135,6 @@ error_code COFFObjectFile::getSymbolName(DataRefImpl Ref, return getSymbolName(Symb, Result); } -error_code COFFObjectFile::getSymbolFileOffset(DataRefImpl Ref, - uint64_t &Result) const { - const coff_symbol *Symb = toSymb(Ref); - const coff_section *Section = NULL; - if (error_code EC = getSection(Symb->SectionNumber, Section)) - return EC; - - if (Symb->SectionNumber == COFF::IMAGE_SYM_UNDEFINED) - Result = UnknownAddressOrSize; - else if (Section) - Result = Section->PointerToRawData + Symb->Value; - else - Result = Symb->Value; - return object_error::success; -} - error_code COFFObjectFile::getSymbolAddress(DataRefImpl Ref, uint64_t &Result) const { const coff_symbol *Symb = toSymb(Ref); |