diff options
author | Damien George <damien.p.george@gmail.com> | 2015-01-02 23:04:09 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2015-01-02 23:04:09 +0000 |
commit | 6fd4b36bc5dfbb6c6a3f85e14269589e6613d26d (patch) | |
tree | b069fd33c8d9b3a7532736d6d08da1e28427a002 /py/mpz.c | |
parent | 6e0b6d02dbe238e6e3d675b51e44b2ac798ddd20 (diff) | |
download | micropython-6fd4b36bc5dfbb6c6a3f85e14269589e6613d26d.tar.gz micropython-6fd4b36bc5dfbb6c6a3f85e14269589e6613d26d.zip |
py: Raise exception if trying to convert inf/nan to int.
Diffstat (limited to 'py/mpz.c')
-rw-r--r-- | py/mpz.c | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -711,16 +711,9 @@ typedef uint32_t mp_float_int_t; // value == 0 || value < 1 mpz_init_zero(z); } else if (u.p.exp == ((1 << EXP_SZ) - 1)) { - // inf or NaN -#if 0 - // TODO: this probably isn't the right place to throw an exception - if(u.p.frc == 0) - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_OverflowError, "cannot convert float infinity to integer")); - else - nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "cannot convert float NaN to integer")); -#else + // u.p.frc == 0 indicates inf, else NaN + // should be handled by caller mpz_init_zero(z); -#endif } else { const int adj_exp = (int)u.p.exp - ((1 << (EXP_SZ - 1)) - 1); if (adj_exp < 0) { |