fix infinite recursion in divmoddi4 / mulodi4
on ARMv7-M processors, divmoddi4 was calling mulodi4 and mulodi4 was calling divmoddi4 leading to infinite recursion. This commit breaks the cycle by using wrapping multiplication in divmoddi4. fixes #145
This commit is contained in:
parent
0507842b24
commit
644a1c9ac9
@ -55,7 +55,9 @@ macro_rules! divmod {
|
|||||||
#[cfg(all(feature = "c", any(target_arch = "x86")))]
|
#[cfg(all(feature = "c", any(target_arch = "x86")))]
|
||||||
() => unsafe { $div(a, b) },
|
() => unsafe { $div(a, b) },
|
||||||
};
|
};
|
||||||
*rem = a - (r * b);
|
// NOTE won't overflow because it's using the result from the
|
||||||
|
// previous division
|
||||||
|
*rem = a - r.wrapping_mul(b);
|
||||||
r
|
r
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user