[Object] Fix the return type of getOffset/getSize

Header64.offset/Header64.size are uint64_t, thus we should not 
truncate them to unit32_t. Moreover, there are a number of places 
where we sum the offset and the size (e.g. in various checks in MachOUniversal.cpp),
the truncation causes issues since the offset/size can perfectly fit into uint32_t, 
while the sum overflows.

Differential revision: https://reviews.llvm.org/D69126

Test plan: make check-all

llvm-svn: 375154
This commit is contained in:
Alexander Shaposhnikov 2019-10-17 18:48:07 +00:00
parent 31a691e2a2
commit 68db51d5c6
1 changed files with 2 additions and 2 deletions

View File

@ -66,13 +66,13 @@ public:
else // Parent->getMagic() == MachO::FAT_MAGIC_64
return Header64.cpusubtype;
}
uint32_t getOffset() const {
uint64_t getOffset() const {
if (Parent->getMagic() == MachO::FAT_MAGIC)
return Header.offset;
else // Parent->getMagic() == MachO::FAT_MAGIC_64
return Header64.offset;
}
uint32_t getSize() const {
uint64_t getSize() const {
if (Parent->getMagic() == MachO::FAT_MAGIC)
return Header.size;
else // Parent->getMagic() == MachO::FAT_MAGIC_64