mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-16 12:24:03 +00:00
Change how symbol sizes are handled in lib/Object.
COFF and MachO only define symbol sizes for common symbols. Reflect that in the class hierarchy by having a method for common symbols only in the base and a general one in ELF. This avoids the need of using a magic value for the size, which had a few problems * Most callers didn't check for it. * The ones that did could not tell the magic value from a file actually having that value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240529 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -155,11 +155,11 @@ std::error_code COFFObjectFile::getSymbolAddress(DataRefImpl Ref,
|
||||
COFFSymbolRef Symb = getCOFFSymbol(Ref);
|
||||
|
||||
if (Symb.isAnyUndefined()) {
|
||||
Result = UnknownAddressOrSize;
|
||||
Result = UnknownAddress;
|
||||
return std::error_code();
|
||||
}
|
||||
if (Symb.isCommon()) {
|
||||
Result = UnknownAddressOrSize;
|
||||
Result = UnknownAddress;
|
||||
return std::error_code();
|
||||
}
|
||||
int32_t SectionNumber = Symb.getSectionNumber();
|
||||
@ -236,12 +236,9 @@ uint32_t COFFObjectFile::getSymbolFlags(DataRefImpl Ref) const {
|
||||
return Result;
|
||||
}
|
||||
|
||||
uint64_t COFFObjectFile::getSymbolSize(DataRefImpl Ref) const {
|
||||
uint64_t COFFObjectFile::getCommonSymbolSizeImpl(DataRefImpl Ref) const {
|
||||
COFFSymbolRef Symb = getCOFFSymbol(Ref);
|
||||
|
||||
if (Symb.isCommon())
|
||||
return Symb.getValue();
|
||||
return UnknownAddressOrSize;
|
||||
return Symb.getValue();
|
||||
}
|
||||
|
||||
std::error_code
|
||||
|
Reference in New Issue
Block a user