summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-01 23:47:02 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-01 23:47:02 +0000
commit54afba10a5bbd81ec0458f9a6129831666b6eca4 (patch)
tree46e2b192c82f8229050b5ee89463797608e84a50 /util.c
parent4940cff399c8c350f43d9151a8c23295e9a6f9d4 (diff)
* util.c (ruby_strtod, dtoa): initialize more variables for error
handling. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'util.c')
-rw-r--r--util.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/util.c b/util.c
index 5ecaf99992..4d96ae33a6 100644
--- a/util.c
+++ b/util.c
@@ -6,7 +6,7 @@
$Date$
created at: Fri Mar 10 17:22:34 JST 1995
- Copyright (C) 1993-2003 Yukihiro Matsumoto
+ Copyright (C) 1993-2008 Yukihiro Matsumoto
**********************************************************************/
@@ -53,7 +53,7 @@ scan_hex(start, len, retlen)
int len;
int *retlen;
{
- static char hexdigit[] = "0123456789abcdef0123456789ABCDEF";
+ static const char hexdigit[] = "0123456789abcdef0123456789ABCDEF";
register const char *s = start;
register unsigned long retval = 0;
char *tmp;
@@ -152,8 +152,8 @@ scan_hex(start, len, retlen)
static int valid_filename(char *s);
-static char suffix1[] = ".$$$";
-static char suffix2[] = ".~~~";
+static const char suffix1[] = ".$$$";
+static const char suffix2[] = ".~~~";
#define ext (&buf[1000])
@@ -2112,6 +2112,7 @@ ruby_strtod(const char *s00, char **se)
const char *s2;
#endif
+ errno = 0;
sign = nz0 = nz = 0;
dval(rv) = 0.;
for (s = s00;;s++)
@@ -2291,7 +2292,7 @@ ret0:
#endif
dval(rv) = tens[k - 9] * dval(rv) + z;
}
- bd0 = 0;
+ bd0 = bb = bd = bs = delta = 0;
if (nd <= DBL_DIG
#ifndef RND_PRODQUOT
#ifndef Honor_FLT_ROUNDS
@@ -3217,7 +3218,7 @@ dtoa(double d, int mode, int ndigits, int *decpt, int *sign, char **rve)
int denorm;
ULong x;
#endif
- Bigint *b, *b1, *delta, *mlo, *mhi, *S;
+ Bigint *b, *b1, *delta, *mlo = 0, *mhi = 0, *S;
double d2, ds, eps;
char *s, *s0;
#ifdef Honor_FLT_ROUNDS
@@ -3570,7 +3571,6 @@ bump_up:
m2 = b2;
m5 = b5;
- mhi = mlo = 0;
if (leftright) {
i =
#ifndef Sudden_Underflow