fix arithmetic overflow
Signed-off-by: Michael Moon <triffid.hunter@gmail.com>
This commit is contained in:
parent
ecc0d6e3ef
commit
19e3c24835
|
|
@ -60,10 +60,14 @@ int32_t decfloat_to_int(decfloat *df, int32_t multiplicand, int32_t denominator)
|
||||||
e--;
|
e--;
|
||||||
|
|
||||||
// scale factors
|
// scale factors
|
||||||
if (multiplicand != 1)
|
// if (multiplicand != 1)
|
||||||
r *= multiplicand;
|
// r *= multiplicand;
|
||||||
if (denominator != 1)
|
// if (denominator != 1)
|
||||||
r /= denominator;
|
// r /= denominator;
|
||||||
|
|
||||||
|
int32_t rnew1 = r * (multiplicand / denominator)
|
||||||
|
int32_t rnew2 = r * (multiplicand % denominator)
|
||||||
|
r = rnew1 + rnew2;
|
||||||
|
|
||||||
// sign
|
// sign
|
||||||
if (df->sign)
|
if (df->sign)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue