diff --git a/src/int/udiv.rs b/src/int/udiv.rs index 3de18b4..8a9da9f 100644 --- a/src/int/udiv.rs +++ b/src/int/udiv.rs @@ -1,4 +1,4 @@ -use core::mem; +use core::{intrinsics, mem}; use int::{Int, LargeInt}; /// Returns `n / d` @@ -7,7 +7,11 @@ use int::{Int, LargeInt}; pub extern "C" fn __udivsi3(n: u32, d: u32) -> u32 { // Special cases if d == 0 { - panic!("Division by zero"); + // NOTE This should be unreachable in safe Rust because the program will panic before + // this intrinsic is called + unsafe { + intrinsics::abort() + } } if n == 0 { @@ -129,7 +133,11 @@ pub extern "C" fn __udivmoddi4(n: u64, d: u64, rem: Option<&mut u64>) -> u64 { // K X // --- // 0 0 - panic!("Division by zero"); + // NOTE This should be unreachable in safe Rust because the program will panic before + // this intrinsic is called + unsafe { + intrinsics::abort() + } } if n.low() == 0 {