author | Rich Felker <dalias@aerifal.cx> | 2012年06月19日 21:41:43 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012年06月19日 21:41:43 -0400 |
commit | 914949d321448bd2189bdcbce794dbae2c8ed16e (patch) | |
tree | f764657e27f3f26006c3e096eab08a55b0214bd9 /src | |
parent | 25c8444919cc129264f7b7f31090d05403477719 (diff) | |
download | musl-914949d321448bd2189bdcbce794dbae2c8ed16e.tar.gz |
-rw-r--r-- | src/stdio/vfprintf.c | 6 |
diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c index 481436df..a3bf18dd 100644 --- a/src/stdio/vfprintf.c +++ b/src/stdio/vfprintf.c @@ -296,7 +296,7 @@ static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) e2-=sh; } while (e2<0) { - uint32_t carry=0, *z2; + uint32_t carry=0, *b; int sh=MIN(9,-e2); for (d=a; d<z; d++) { uint32_t rm = *d & (1<<sh)-1; @@ -306,8 +306,8 @@ static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) if (!*a) a++; if (carry) *z++ = carry; /* Avoid (slow!) computation past requested precision */ - z2 = ((t|32)=='f' ? r : a) + 2 + p/9; - z = MIN(z, z2); + b = (t|32)=='f' ? r : a; + if (z-b > 2+p/9) z = b+2+p/9; e2+=sh; } |