From: David Majnemer Date: Fri, 31 Jul 2015 17:40:24 +0000 (+0000) Subject: [COFF] Consider the ImageBase when reporting section addresses X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=0229c3b7ada43f26c6a335788fdb09d9c368d356 [COFF] Consider the ImageBase when reporting section addresses This lets us reenable the lld test disabled in r243758. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243761 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Object/COFFObjectFile.cpp b/lib/Object/COFFObjectFile.cpp index ed63f3a64e0..d110b9293ba 100644 --- a/lib/Object/COFFObjectFile.cpp +++ b/lib/Object/COFFObjectFile.cpp @@ -177,7 +177,7 @@ ErrorOr COFFObjectFile::getSymbolAddress(DataRefImpl Ref) const { if (PE32Header) Result += PE32Header->ImageBase; else if (PE32PlusHeader) - Result += PE32Header->ImageBase; + Result += PE32PlusHeader->ImageBase; return Result; } @@ -274,7 +274,15 @@ std::error_code COFFObjectFile::getSectionName(DataRefImpl Ref, uint64_t COFFObjectFile::getSectionAddress(DataRefImpl Ref) const { const coff_section *Sec = toSec(Ref); - return Sec->VirtualAddress; + uint64_t Result = Sec->VirtualAddress; + + // The section VirtualAddress does not include ImageBase, and we want to + // return virtual addresses. + if (PE32Header) + Result += PE32Header->ImageBase; + else if (PE32PlusHeader) + Result += PE32PlusHeader->ImageBase; + return Result; } uint64_t COFFObjectFile::getSectionSize(DataRefImpl Ref) const {