summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.berkeley.edu>1999-04-30 18:26:09 -0400
committerGurusamy Sarathy <gsar@cpan.org>1999-05-10 12:07:13 +0000
commit25da4f389200e19df8aa50bcef9af9506f48ed2e (patch)
tree65b30771e2788ce1648d3a92a6cb6ca63f48ca23 /util.c
parenta1bd196e40598e773ccd679fc8778a94de7814af (diff)
downloadperl-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.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/util.c b/util.c
index b357aa807f..8df5616573 100644
--- a/util.c
+++ b/util.c
@@ -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;
}