diff options
| author | Kevin B Kenny <kennykb@acm.org> | 2010-12-01 16:28:21 (GMT) | 
|---|---|---|
| committer | Kevin B Kenny <kennykb@acm.org> | 2010-12-01 16:28:21 (GMT) | 
| commit | 3010ca024256f6a0d6b27bf72d3e5b7259e90650 (patch) | |
| tree | 1665ec11233cde8c883092e30aef8015f40dbe29 | |
| parent | 94ead3bc1f6658967c1ea17f52b7d885f1534ca9 (diff) | |
| download | tcl-3010ca024256f6a0d6b27bf72d3e5b7259e90650.zip tcl-3010ca024256f6a0d6b27bf72d3e5b7259e90650.tar.gz tcl-3010ca024256f6a0d6b27bf72d3e5b7259e90650.tar.bz2  | |
* generic/tclStrToD.c (SetPrecisionLimits, TclDoubleDigits):
Added meaningless initialization of 'i', 'ilim' and 'ilim1'
to silence warnings from the C compiler about possible use of
uninitialized variables, Added a panic to the 'switch' that
assigns them, to assert that the 'default' case is impossible.
[Bug 3124675]
| -rw-r--r-- | ChangeLog | 9 | ||||
| -rwxr-xr-x | generic/tclStrToD.c | 15 | 
2 files changed, 20 insertions, 4 deletions
@@ -1,3 +1,12 @@ +2010-12-01  Kevin B. Kenny  <kennykb@acm.org> + +	* generic/tclStrToD.c (SetPrecisionLimits, TclDoubleDigits): +	Added meaningless initialization of 'i', 'ilim' and 'ilim1' +	to silence warnings from the C compiler about possible use of +	uninitialized variables, Added a panic to the 'switch' that +	assigns them, to assert that the 'default' case is impossible. +	[Bug 3124675] +  2010-11-30  Andreas Kupries  <andreask@activestate.com>  	* generic/tclInt.decls: Backport of Kevin B. Kenny's work on diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c index 683a990..3b07e46 100755 --- a/generic/tclStrToD.c +++ b/generic/tclStrToD.c @@ -14,7 +14,7 @@   * See the file "license.terms" for information on usage and redistribution of   * this file, and for a DISCLAIMER OF ALL WARRANTIES.   * - * RCS: @(#) $Id: tclStrToD.c,v 1.33.2.5 2010/11/30 20:59:27 andreas_kupries Exp $ + * RCS: @(#) $Id: tclStrToD.c,v 1.33.2.6 2010/12/01 16:28:21 kennykb Exp $   *   *----------------------------------------------------------------------   */ @@ -2405,6 +2405,11 @@ SetPrecisionLimits(int convType,      /*   *-----------------------------------------------------------------------------   * +    default: +	*iPtr = -1; +	*iLimPtr = -1; +	*iLim1Ptr = -1; +	Tcl_Panic("impossible conversion type in TclDoubleDigits");   * BumpUp --   *   *	Increases a string of digits ending in a series of nines to @@ -3909,7 +3914,7 @@ StrictBignumConversion(Double* dPtr,  	     * empty precision.  	     */ -	    /* Extract the next digit */ +	    /* Extract the next group of digits */  	    mp_div(&b, &S, &dig, &b);  	    if (dig.used > 1) { @@ -4048,9 +4053,11 @@ TclDoubleDigits(double dv,	/* Number to convert */  				 * power of ten that k must be checked */      int b2, b5, s2, s5;		/* Powers of 2 and 5 in the numerator and  				 * denominator of intermediate results */ -    int ilim, ilim1; +    int ilim = -1, ilim1 = -1;	/* Number of digits to convert, and number +				 * to convert if log10(d) has been  +				 * overestimated */      char* retval;		/* Return value from this function */ -    int i; +    int i = -1;      /* Put the input number into a union for bit-whacking */  | 
