< prev index next >
src/cpu/x86/vm/c1_LIRGenerator_x86.cpp
Print this page
rev 11926 : 8166140: C1: Possible integer overflow in LIRGenerator::generate_address on several platforms
Reviewed-by:
@@ -150,11 +150,11 @@
LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
int shift, int disp, BasicType type) {
assert(base->is_register(), "must be");
if (index->is_constant()) {
return new LIR_Address(base,
- (index->as_constant_ptr()->as_jint() << shift) + disp,
+ ((intx)(index->as_constant_ptr()->as_jint()) << shift) + disp,
type);
} else {
return new LIR_Address(base, index, (LIR_Address::Scale)shift, disp, type);
}
}
< prev index next >