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 {
|
||||
Ok(two_pow_positive(e as u32))
|
||||
} 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)
|
||||
}
|
||||
}
|
||||
@@ -790,7 +791,8 @@ impl Number {
|
||||
if e >= 0 {
|
||||
Ok(ten_pow_positive(e as u32))
|
||||
} 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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user