mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-02 19:24:25 +00:00
A fix for the previous commit: "integer constant is too large for ‘long’ type" error on some 32-bit bots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148232 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -183,9 +183,9 @@ void RuntimeDyldELF::resolveX86_64Relocation(StringRef Name,
|
|||||||
case ELF::R_X86_64_32S: {
|
case ELF::R_X86_64_32S: {
|
||||||
uint64_t Value = reinterpret_cast<uint64_t>(Addr) + RE.Addend;
|
uint64_t Value = reinterpret_cast<uint64_t>(Addr) + RE.Addend;
|
||||||
// FIXME: Handle the possibility of this assertion failing
|
// FIXME: Handle the possibility of this assertion failing
|
||||||
assert((RE.Type == ELF::R_X86_64_32 && !(Value & 0xFFFFFFFF00000000)) ||
|
assert((RE.Type == ELF::R_X86_64_32 && !(Value & 0xFFFFFFFF00000000ULL)) ||
|
||||||
(RE.Type == ELF::R_X86_64_32S &&
|
(RE.Type == ELF::R_X86_64_32S &&
|
||||||
(Value & 0xFFFFFFFF00000000) == 0xFFFFFFFF00000000));
|
(Value & 0xFFFFFFFF00000000ULL) == 0xFFFFFFFF00000000ULL));
|
||||||
uint32_t TruncatedAddr = (Value & 0xFFFFFFFF);
|
uint32_t TruncatedAddr = (Value & 0xFFFFFFFF);
|
||||||
uint32_t *Target = reinterpret_cast<uint32_t*>(TargetAddr);
|
uint32_t *Target = reinterpret_cast<uint32_t*>(TargetAddr);
|
||||||
*Target = TruncatedAddr;
|
*Target = TruncatedAddr;
|
||||||
|
Reference in New Issue
Block a user