diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/ExecutionEngine/JITLink/JITLink_MachO_x86_64.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/JITLink/JITLink_MachO_x86_64.cpp b/llvm/lib/ExecutionEngine/JITLink/JITLink_MachO_x86_64.cpp index fd058fa3116..0e1dd236dc8 100644 --- a/llvm/lib/ExecutionEngine/JITLink/JITLink_MachO_x86_64.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/JITLink_MachO_x86_64.cpp @@ -227,7 +227,7 @@ private: AtomToFix = &*AtomToFixOrErr; } - if (FixupAddress + (1 << RI.r_length) > + if (FixupAddress + static_cast<JITTargetAddress>(1 << RI.r_length) > AtomToFix->getAddress() + AtomToFix->getContent().size()) return make_error<JITLinkError>( "Relocation content extends past end of fixup atom"); @@ -290,7 +290,8 @@ private: case PCRel32Minus1Anon: case PCRel32Minus2Anon: case PCRel32Minus4Anon: { - JITTargetAddress Delta = 1 << (*Kind - PCRel32Minus1Anon); + JITTargetAddress Delta = + static_cast<JITTargetAddress>(1 << (*Kind - PCRel32Minus1Anon)); JITTargetAddress TargetAddress = FixupAddress + 4 + Delta + *(const ulittle32_t *)FixupContent; if (auto TargetAtomOrErr = G.findAtomByAddress(TargetAddress)) |