From: Eli Bendersky Date: Mon, 16 Jan 2012 09:31:10 +0000 (+0000) Subject: A fix for the previous commit: "integer constant is too large for ‘long’ type" error... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9223822b85080aae1e13ed00d88faaf7eba47d67;p=oota-llvm.git 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 --- diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp index 9ff95ff8b6e..54cb350552d 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp @@ -183,9 +183,9 @@ void RuntimeDyldELF::resolveX86_64Relocation(StringRef Name, case ELF::R_X86_64_32S: { uint64_t Value = reinterpret_cast(Addr) + RE.Addend; // 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 && - (Value & 0xFFFFFFFF00000000) == 0xFFFFFFFF00000000)); + (Value & 0xFFFFFFFF00000000ULL) == 0xFFFFFFFF00000000ULL)); uint32_t TruncatedAddr = (Value & 0xFFFFFFFF); uint32_t *Target = reinterpret_cast(TargetAddr); *Target = TruncatedAddr;