From: bjorn3 Date: Fri, 1 May 2020 10:32:23 +0000 (+0200) Subject: Fix ptr_offset_from intrinsic X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;ds=sidebyside;h=aa6a4acd787b87e1ca19fb27da79ce072b9725ab;p=rust.git Fix ptr_offset_from intrinsic --- diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs index c74ed2d3061..a9954aff6d1 100644 --- a/src/intrinsics/mod.rs +++ b/src/intrinsics/mod.rs @@ -812,7 +812,7 @@ fn swap(bcx: &mut FunctionBuilder<'_>, v: Value) -> Value { let pointee_size: u64 = fx.layout_of(T).size.bytes(); let diff = fx.bcx.ins().isub(ptr, base); // FIXME this can be an exact division. - let val = CValue::by_val(fx.bcx.ins().udiv_imm(diff, pointee_size as i64), isize_layout); + let val = CValue::by_val(fx.bcx.ins().sdiv_imm(diff, pointee_size as i64), isize_layout); ret.write_cvalue(fx, val); };