Skip to content

Commit

Permalink
fix debug assertion in modsi3 / moddi3
Browse files Browse the repository at this point in the history
fixes #151
this fix is very similar to #149
  • Loading branch information
Jorge Aparicio committed Mar 14, 2017
1 parent 9681358 commit 2faec6a
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/int/sdiv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@ macro_rules! mod_ {
#[cfg_attr(not(test), no_mangle)]
pub extern "C" fn $intrinsic(a: $ty, b: $ty) -> $tyret {
let s = b >> (<$ty>::bits() - 1);
let b = (b ^ s) - s;
// NOTE(wrapping_sub) see comment in the `div` macro
let b = (b ^ s).wrapping_sub(s);
let s = a >> (<$ty>::bits() - 1);
let a = (a ^ s) - s;
let a = (a ^ s).wrapping_sub(s);

let r = urem!(a as $uty, b as $uty);
($conv)((r as $ty ^ s) - s)
Expand Down

0 comments on commit 2faec6a

Please sign in to comment.