diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | util.c | 9 |
2 files changed, 9 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Mon Jun 2 08:46:52 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * util.c (ruby_strtod, dtoa): initialize more variables for error + handling. + Mon Jun 2 04:55:05 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * suppress warnings on cygwin, mingw and mswin. @@ -5,7 +5,7 @@ $Author$ created at: Fri Mar 10 17:22:34 JST 1995 - Copyright (C) 1993-2007 Yukihiro Matsumoto + Copyright (C) 1993-2008 Yukihiro Matsumoto **********************************************************************/ @@ -48,7 +48,7 @@ ruby_scan_oct(const char *start, int len, int *retlen) unsigned long ruby_scan_hex(const char *start, 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; @@ -2384,7 +2384,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 @@ -3310,7 +3310,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 @@ -3663,7 +3663,6 @@ bump_up: m2 = b2; m5 = b5; - mhi = mlo = 0; if (leftright) { i = #ifndef Sudden_Underflow |