diff options
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/Makefile | 4 | ||||
-rw-r--r-- | stdio-common/printf_fp.c | 20 | ||||
-rw-r--r-- | stdio-common/tstscanf.c | 4 |
3 files changed, 18 insertions, 10 deletions
diff --git a/stdio-common/Makefile b/stdio-common/Makefile index deb6f92214..d4a167580c 100644 --- a/stdio-common/Makefile +++ b/stdio-common/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. +# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -41,7 +41,7 @@ tests := tst-printf tstscanf test_rdwr test-popen tstgetln test-fseek \ xbug errnobug \ bug1 bug2 bug3 bug4 bug5 bug6 bug7 bug8 bug9 bug10 bug11 \ tfformat tiformat tstdiomisc \ - scanf1 scanf2 scanf3 scanf4 scanf5 scanf6 scanf7 scanf8 scanf9 + scanf1 scanf2 scanf3 scanf4 scanf5 scanf7 scanf8 scanf9 include ../Rules diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c index 747491f012..15eb0b63ab 100644 --- a/stdio-common/printf_fp.c +++ b/stdio-common/printf_fp.c @@ -382,8 +382,9 @@ __printf_fp (FILE *fp, else { cy = __mpn_mul (tmp, scale, scalesize, - tens->array + 2, tens->arraysize - 2); - tmpsize = scalesize + tens->arraysize - 2; + &tens->array[_FPIO_CONST_OFFSET], + tens->arraysize - _FPIO_CONST_OFFSET); + tmpsize = scalesize + tens->arraysize - _FPIO_CONST_OFFSET; if (cy == 0) --tmpsize; } @@ -513,13 +514,15 @@ __printf_fp (FILE *fp, /* The __mpn_mul function expects the first argument to be bigger than the second. */ - if (fracsize < tens->arraysize - 2) - cy = __mpn_mul (tmp, &tens->array[2], tens->arraysize - 2, + if (fracsize < tens->arraysize - _FPIO_CONST_OFFSET) + cy = __mpn_mul (tmp, &tens->array[_FPIO_CONST_OFFSET], + tens->arraysize - _FPIO_CONST_OFFSET, frac, fracsize); else cy = __mpn_mul (tmp, frac, fracsize, - &tens->array[2], tens->arraysize - 2); - tmpsize = fracsize + tens->arraysize - 2; + &tens->array[_FPIO_CONST_OFFSET], + tens->arraysize - _FPIO_CONST_OFFSET); + tmpsize = fracsize + tens->arraysize - _FPIO_CONST_OFFSET; if (cy == 0) --tmpsize; @@ -536,11 +539,12 @@ __printf_fp (FILE *fp, if (cnt_h <= BITS_PER_MP_LIMB - 4) { topval[0] = 0; - topval[1] = 10 << (BITS_PER_MP_LIMB - 4 - cnt_h); + topval[1] + = ((mp_limb) 10) << (BITS_PER_MP_LIMB - 4 - cnt_h); } else { - topval[0] = 10 << (BITS_PER_MP_LIMB - 4); + topval[0] = ((mp_limb) 10) << (BITS_PER_MP_LIMB - 4); topval[1] = 0; (void) __mpn_lshift (topval, topval, 2, BITS_PER_MP_LIMB - cnt_h); diff --git a/stdio-common/tstscanf.c b/stdio-common/tstscanf.c index 53d4b0ac47..738b25a65e 100644 --- a/stdio-common/tstscanf.c +++ b/stdio-common/tstscanf.c @@ -31,6 +31,10 @@ DEFUN(main, (argc, argv), int argc AND char **argv) { char buf[BUFSIZ]; FILE *in = stdin, *out = stdout; + int x; + + if (sscanf ("0", "%d", &x) != 1) + exit (EXIT_FAILURE); if (argc == 2 && !strcmp (argv[1], "-opipe")) { |