Revision: 16324
          http://sourceforge.net/p/edk2/code/16324
Author:   darylm503
Date:     2014-11-10 23:05:45 +0000 (Mon, 10 Nov 2014)
Log Message:
-----------
StdLib: Fix a "potentially uninitialized variable" error.

gdtoa/gdtoa.c:  Several "goto" paths allowed the initialization of a variable 
to be bypassed.  Initialized it at the top of the function in order to 
eliminate the error.

Updated the file header and copyright notices.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daryl McDaniel <[email protected]>
Reviewed-by: Erik Bjorge <[email protected]>

Modified Paths:
--------------
    trunk/edk2/StdLib/LibC/gdtoa/gdtoa.c

Modified: trunk/edk2/StdLib/LibC/gdtoa/gdtoa.c
===================================================================
--- trunk/edk2/StdLib/LibC/gdtoa/gdtoa.c        2014-11-10 10:20:25 UTC (rev 
16323)
+++ trunk/edk2/StdLib/LibC/gdtoa/gdtoa.c        2014-11-10 23:05:45 UTC (rev 
16324)
@@ -1,7 +1,16 @@
-/* $NetBSD: gdtoa.c,v 1.1.1.1.4.1.4.1 2008/04/08 21:10:55 jdc Exp $ */
+/** @file
 
-/****************************************************************
+  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
+  This program and the accompanying materials are licensed and made available 
under
+  the terms and conditions of the BSD License that accompanies this 
distribution.
+  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php.
 
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+  ***************************************************************
+
 The author of this software is David M. Gay.
 
 Copyright (C) 1998, 1999 by Lucent Technologies
@@ -26,10 +35,11 @@
 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
 THIS SOFTWARE.
 
-****************************************************************/
+  Please send bug reports to David M. Gay (dmg at acm dot org,
+  with " at " changed at "@" and " dot " changed to ".").
 
-/* Please send bug reports to David M. Gay (dmg at acm dot org,
- * with " at " changed at "@" and " dot " changed to ".").  */
+  NetBSD: gdtoa.c,v 1.1.1.1.4.1.4.1 2008/04/08 21:10:55 jdc Exp
+**/
 #include  <LibConfig.h>
 
 #include "gdtoaimp.h"
@@ -53,7 +63,7 @@
   while(i < nbits) {
     i <<= 1;
     k++;
-    }
+  }
 #ifndef Pack_32
   if (!k)
     k = 1;
@@ -68,19 +78,19 @@
 #ifdef Pack_16
     *x++ = (*bits >> 16) & ALL_ON;
 #endif
-    } while(++bits <= be);
+  } while(++bits <= be);
   i = x - x0;
   while(!x0[--i])
     if (!i) {
       b->wds = 0;
       *bbits = 0;
       goto ret;
-      }
+    }
   b->wds = i + 1;
   *bbits = i*ULbits + 32 - hi0bits(b->x[i]);
- ret:
+ret:
   return b;
-  }
+}
 
 /* dtoa for IEEE arithmetic (dmg): convert double to ASCII string.
  *
@@ -162,11 +172,13 @@
   double d, d2, ds, eps;
   char *s, *s0;
 
+  mlo = NULL;
+
 #ifndef MULTIPLE_THREADS
   if (dtoa_result) {
     freedtoa(dtoa_result);
     dtoa_result = 0;
-    }
+  }
 #endif
   inex = 0;
   if (*kindp & STRTOG_NoMemory)
@@ -174,19 +186,19 @@
   kind = *kindp &= ~STRTOG_Inexact;
   switch(kind & STRTOG_Retmask) {
     case STRTOG_Zero:
-    goto ret_zero;
+      goto ret_zero;
     case STRTOG_Normal:
     case STRTOG_Denormal:
-    break;
+      break;
     case STRTOG_Infinite:
-    *decpt = -32768;
-    return nrv_alloc("Infinity", rve, 8);
+      *decpt = -32768;
+      return nrv_alloc("Infinity", rve, 8);
     case STRTOG_NaN:
-    *decpt = -32768;
-    return nrv_alloc("NaN", rve, 3);
+      *decpt = -32768;
+      return nrv_alloc("NaN", rve, 3);
     default:
-    return 0;
-    }
+      return 0;
+  }
   b = bitstob(bits, nbits = fpi->nbits, &bbits);
   if (b == NULL)
     return NULL;
@@ -195,13 +207,13 @@
     rshift(b, i);
     be += i;
     bbits -= i;
-    }
+  }
   if (!b->wds) {
     Bfree(b);
- ret_zero:
+ret_zero:
     *decpt = 1;
     return nrv_alloc("0", rve, 1);
-    }
+  }
 
   dval(d) = b2d(b, &i);
   i = be + bbits - 1;
@@ -261,33 +273,33 @@
     if (dval(d) < tens[k])
       k--;
     k_check = 0;
-    }
+  }
   j = bbits - i - 1;
   if (j >= 0) {
     b2 = 0;
     s2 = j;
-    }
+  }
   else {
     b2 = -j;
     s2 = 0;
-    }
+  }
   if (k >= 0) {
     b5 = 0;
     s5 = k;
     s2 += k;
-    }
+  }
   else {
     b2 -= k;
     b5 = -k;
     s5 = 0;
-    }
+  }
   if (mode < 0 || mode > 9)
     mode = 0;
   try_quick = 1;
   if (mode > 5) {
     mode -= 4;
     try_quick = 0;
-    }
+  }
   leftright = 1;
   switch(mode) {
     case 0:
@@ -313,7 +325,7 @@
       ilim1 = i - 1;
       if (i <= 0)
         i = 1;
-    }
+  }
   s = s0 = rv_alloc((size_t)i);
   if (s == NULL)
     return NULL;
@@ -323,7 +335,7 @@
       rdir = 2;
     if (kind & STRTOG_Neg)
       rdir = 3 - rdir;
-    }
+  }
 
   /* Now rdir = 0 ==> round near, 1 ==> round up, 2 ==> round down. */
 
@@ -352,13 +364,13 @@
         j &= Bletch - 1;
         dval(d) /= bigtens[n_bigtens-1];
         ieps++;
-        }
+      }
       for(; j; j /= 2, i++)
         if (j & 1) {
           ieps++;
           ds *= bigtens[i];
-          }
-      }
+        }
+    }
     else  {
       ds = 1.;
       if ( (jj1 = -k) !=0) {
@@ -367,9 +379,9 @@
           if (j & 1) {
             ieps++;
             dval(d) *= bigtens[i];
-            }
-        }
+          }
       }
+    }
     if (k_check && dval(d) < 1. && ilim > 0) {
       if (ilim1 <= 0)
         goto fast_failed;
@@ -377,7 +389,7 @@
       k--;
       dval(d) *= 10.;
       ieps++;
-      }
+    }
     dval(eps) = ieps*dval(d) + 7.;
     word0(eps) -= (P-1)*Exp_msk1;
     if (ilim == 0) {
@@ -388,7 +400,7 @@
       if (dval(d) < -dval(eps))
         goto no_digits;
       goto fast_failed;
-      }
+    }
 #ifndef No_leftright
     if (leftright) {
       /* Use Steele & White method of only
@@ -403,15 +415,15 @@
           if (dval(d))
             inex = STRTOG_Inexlo;
           goto ret1;
-          }
+        }
         if (ds - dval(d) < dval(eps))
           goto bump_up;
         if (++i >= ilim)
           break;
         dval(eps) *= 10.;
         dval(d) *= 10.;
-        }
       }
+    }
     else {
 #endif
       /* Generate ilim digits, then fix them up. */
@@ -430,19 +442,19 @@
             if (dval(d))
               inex = STRTOG_Inexlo;
             goto ret1;
-            }
+          }
           break;
-          }
         }
+      }
 #ifndef No_leftright
-      }
+    }
 #endif
- fast_failed:
+fast_failed:
     s = s0;
     dval(d) = d2;
     k = k0;
     ilim = ilim0;
-    }
+  }
 
   /* Do we have a "small" integer? */
 
@@ -454,7 +466,7 @@
       if (ilim < 0 || dval(d) <= 5*ds)
         goto no_digits;
       goto one_digit;
-      }
+    }
     for(i = 1;; i++, dval(d) *= 10.) {
       L = dval(d) / ds;
       dval(d) -= L*ds;
@@ -463,7 +475,7 @@
       if (dval(d) < 0) {
         L--;
         dval(d) += ds;
-        }
+      }
 #endif
       *s++ = '0' + (int)L;
       if (dval(d) == 0.)
@@ -474,37 +486,38 @@
             goto bump_up;
           inex = STRTOG_Inexlo;
           goto ret1;
-          }
+        }
         dval(d) += dval(d);
         if (dval(d) > ds || (dval(d) == ds && L & 1)) {
- bump_up:
+bump_up:
           inex = STRTOG_Inexhi;
           while(*--s == '9')
             if (s == s0) {
               k++;
               *s = '0';
               break;
-              }
+            }
           ++*s++;
-          }
+        }
         else
           inex = STRTOG_Inexlo;
         break;
-        }
       }
+    }
     goto ret1;
-    }
+  }
 
   m2 = b2;
   m5 = b5;
-  mhi = mlo = 0;
+  mhi = NULL;
+  mlo = NULL;
   if (leftright) {
     if (mode < 2) {
       i = nbits - bbits;
       if (be - i++ < fpi->emin)
         /* denormal */
         i = be - fpi->emin + 1;
-      }
+    }
     else {
       j = ilim - 1;
       if (m5 >= j)
@@ -513,22 +526,22 @@
         s5 += j -= m5;
         b5 += j;
         m5 = 0;
-        }
+      }
       if ((i = ilim) < 0) {
         m2 -= i;
         i = 0;
-        }
       }
+    }
     b2 += i;
     s2 += i;
     mhi = i2b(1);
-    }
+  }
   if (m2 > 0 && s2 > 0) {
     i = m2 < s2 ? m2 : s2;
     b2 -= i;
     m2 -= i;
     s2 -= i;
-    }
+  }
   if (b5 > 0) {
     if (leftright) {
       if (m5 > 0) {
@@ -540,19 +553,19 @@
           return NULL;
         Bfree(b);
         b = b1;
-        }
+      }
       if ( (j = b5 - m5) !=0) {
         b = pow5mult(b, j);
         if (b == NULL)
           return NULL;
-        }
       }
+    }
     else {
       b = pow5mult(b, b5);
       if (b == NULL)
         return NULL;
-      }
     }
+  }
   S = i2b(1);
   if (S == NULL)
     return NULL;
@@ -560,7 +573,7 @@
     S = pow5mult(S, s5);
     if (S == NULL)
       return NULL;
-    }
+  }
 
   /* Check for special case that d is a normalized power of 2. */
 
@@ -571,8 +584,8 @@
       b2++;
       s2++;
       spec_case = 1;
-      }
     }
+  }
 
   /* Arrange for convenient computation of quotients:
    * shift left if necessary so divisor has 4 leading 0 bits.
@@ -593,13 +606,13 @@
     b2 += i;
     m2 += i;
     s2 += i;
-    }
+  }
   else if (i < 4) {
     i += 28;
     b2 += i;
     m2 += i;
     s2 += i;
-    }
+  }
   if (b2 > 0)
     b = lshift(b, b2);
   if (s2 > 0)
@@ -614,30 +627,30 @@
         mhi = multadd(mhi, 10, 0);
         if (mhi == NULL)
           return NULL;
-        }
+      }
       ilim = ilim1;
-      }
     }
+  }
   if (ilim <= 0 && mode > 2) {
     if (ilim < 0 || cmp(b,S = multadd(S,5,0)) <= 0) {
       /* no digits, fcvt style */
- no_digits:
+no_digits:
       k = -1 - ndigits;
       inex = STRTOG_Inexlo;
       goto ret;
-      }
- one_digit:
+    }
+one_digit:
     inex = STRTOG_Inexhi;
     *s++ = '1';
     k++;
     goto ret;
-    }
+  }
   if (leftright) {
     if (m2 > 0) {
       mhi = lshift(mhi, m2);
       if (mhi == NULL)
         return NULL;
-      }
+    }
 
     /* Compute mlo -- check for special case
      * that d is a normalized power of 2.
@@ -652,7 +665,7 @@
       mhi = lshift(mhi, 1);
       if (mhi == NULL)
         return NULL;
-      }
+    }
 
     for(i = 1;;i++) {
       dig = quorem(b,S) + '0';
@@ -672,14 +685,14 @@
         if (j <= 0) {
           if (b->wds > 1 || b->x[0])
             inex = STRTOG_Inexlo;
-          }
+        }
         else {
           dig++;
           inex = STRTOG_Inexhi;
-          }
+        }
         *s++ = dig;
         goto ret;
-        }
+      }
 #endif
       if (j < 0 || (j == 0 && !mode
 #ifndef ROUND_BIASED
@@ -690,7 +703,7 @@
           if (rdir == 2) {
             inex = STRTOG_Inexlo;
             goto accept;
-            }
+          }
           while (cmp(S,mhi) > 0) {
             *s++ = dig;
             mhi1 = multadd(mhi, 10, 0);
@@ -703,12 +716,12 @@
             if (b == NULL)
               return NULL;
             dig = quorem(b,S) + '0';
-            }
+          }
           if (dig++ == '9')
             goto round_9_up;
           inex = STRTOG_Inexhi;
           goto accept;
-          }
+        }
         if (jj1 > 0) {
           b = lshift(b, 1);
           if (b == NULL)
@@ -718,24 +731,24 @@
           && dig++ == '9')
             goto round_9_up;
           inex = STRTOG_Inexhi;
-          }
+        }
         if (b->wds > 1 || b->x[0])
           inex = STRTOG_Inexlo;
- accept:
+accept:
         *s++ = dig;
         goto ret;
-        }
+      }
       if (jj1 > 0 && rdir != 2) {
         if (dig == '9') { /* possible if i == 1 */
- round_9_up:
+round_9_up:
           *s++ = '9';
           inex = STRTOG_Inexhi;
           goto roundoff;
-          }
+        }
         inex = STRTOG_Inexhi;
         *s++ = dig + 1;
         goto ret;
-        }
+      }
       *s++ = dig;
       if (i == ilim)
         break;
@@ -746,7 +759,7 @@
         mlo = mhi = multadd(mhi, 10, 0);
         if (mlo == NULL)
           return NULL;
-        }
+      }
       else {
         mlo = multadd(mlo, 10, 0);
         if (mlo == NULL)
@@ -754,9 +767,9 @@
         mhi = multadd(mhi, 10, 0);
         if (mhi == NULL)
           return NULL;
-        }
       }
     }
+  }
   else
     for(i = 1;; i++) {
       *s++ = dig = quorem(b,S) + '0';
@@ -765,7 +778,7 @@
       b = multadd(b, 10, 0);
       if (b == NULL)
         return NULL;
-      }
+    }
 
   /* Round off last digit */
 
@@ -773,37 +786,37 @@
     if (rdir == 2 || (b->wds <= 1 && !b->x[0]))
       goto chopzeros;
     goto roundoff;
-    }
+  }
   b = lshift(b, 1);
   if (b == NULL)
     return NULL;
   j = cmp(b, S);
   if (j > 0 || (j == 0 && dig & 1)) {
- roundoff:
+roundoff:
     inex = STRTOG_Inexhi;
     while(*--s == '9')
       if (s == s0) {
         k++;
         *s++ = '1';
         goto ret;
-        }
+      }
     ++*s++;
-    }
+  }
   else {
- chopzeros:
+chopzeros:
     if (b->wds > 1 || b->x[0])
       inex = STRTOG_Inexlo;
     while(*--s == '0'){}
     s++;
-    }
- ret:
+  }
+ret:
   Bfree(S);
   if (mhi) {
     if (mlo && mlo != mhi)
       Bfree(mlo);
     Bfree(mhi);
-    }
- ret1:
+  }
+ret1:
   Bfree(b);
   *s = 0;
   *decpt = k + 1;
@@ -811,4 +824,4 @@
     *rve = s;
   *kindp |= inex;
   return s0;
-  }
+}


------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to