mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
Handle i32::MIN in Number::two_pow and Number::ten_pow (#771)
* In Number::two_pow, handle i32::MIN case * In Number::ten_pow, handle i32::MIN case
This commit is contained in:
@@ -781,7 +781,8 @@ impl Number {
|
|||||||
if e >= 0 {
|
if e >= 0 {
|
||||||
Ok(two_pow_positive(e as u32))
|
Ok(two_pow_positive(e as u32))
|
||||||
} else {
|
} else {
|
||||||
let denom = two_pow_positive((-e) as u32);
|
// Must cast to i64 before negating in case it's i32::MIN
|
||||||
|
let denom = two_pow_positive((-(e as i64)) as u32);
|
||||||
Number::from(1u64).divide(&denom)
|
Number::from(1u64).divide(&denom)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -790,7 +791,8 @@ impl Number {
|
|||||||
if e >= 0 {
|
if e >= 0 {
|
||||||
Ok(ten_pow_positive(e as u32))
|
Ok(ten_pow_positive(e as u32))
|
||||||
} else {
|
} else {
|
||||||
let denom = ten_pow_positive((-e) as u32);
|
// Must cast to i64 before negating in case it's i32::MIN
|
||||||
|
let denom = ten_pow_positive((-(e as i64)) as u32);
|
||||||
Number::from(1u64).divide(&denom)
|
Number::from(1u64).divide(&denom)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user