diff options
author | Ilya Zakharevich <ilya@math.berkeley.edu> | 1999-04-30 18:26:09 -0400 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-05-10 12:07:13 +0000 |
commit | 25da4f389200e19df8aa50bcef9af9506f48ed2e (patch) | |
tree | 65b30771e2788ce1648d3a92a6cb6ca63f48ca23 /util.c | |
parent | a1bd196e40598e773ccd679fc8778a94de7814af (diff) | |
download | perl-25da4f389200e19df8aa50bcef9af9506f48ed2e.tar.gz |
Self-consistent numeric conversion again
Message-Id: <199905010226.WAA19127@monk.mps.ohio-state.edu>
p4raw-id: //depot/perl@3378
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -2412,8 +2412,14 @@ cast_i32(double f) IV cast_iv(double f) { - if (f >= IV_MAX) - return (IV) IV_MAX; + if (f >= IV_MAX) { + UV uv; + + if (f >= (double)UV_MAX) + return (IV) UV_MAX; + uv = (UV) f; + return (IV)uv; + } if (f <= IV_MIN) return (IV) IV_MIN; return (IV) f; @@ -2424,6 +2430,14 @@ cast_uv(double f) { if (f >= MY_UV_MAX) return (UV) MY_UV_MAX; + if (f < 0) { + IV iv; + + if (f < IV_MIN) + return (UV)IV_MIN; + iv = (IV) f; + return (UV) iv; + } return (UV) f; } |