From e1b13a63d06d2ec8b122db5c76b920544b32314a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 19 Aug 1999 16:47:42 +0000 Subject: [PATCH] Update. 1999-08-19 Andreas Schwab * libio/iovswscanf.c (vswscanf): Make stream unoriented initially and call _IO_fwide, to get the wide stream state initialized correctly. Don't set _IO_JUMPS. * libio/vsnprintf.c (_IO_vsnprintf): Avoid casts to _IO_FILE *. * libio/vswprintf.c (_IO_vswprintf): Likewise. Pass _IO_wstrn_jumps to _IO_no_init instead of setting _IO_WIDE_JUMPS directly. 1999-08-19 Andreas Jaeger * math/libm-test.c (jn_test): Fix typo in description. (erfc_test): Add some more tests. (erf_test): Add some more tests. 1999-08-19 Andreas Schwab * csu/Makefile ($(objpfx)initfini.s): Replace $(no-exceptions) by expression using $(exceptions). --- ChangeLog | 21 +++++++++++++++++++++ csu/Makefile | 2 +- libio/iovswscanf.c | 4 ++-- libio/vsnprintf.c | 8 ++++---- libio/vswprintf.c | 7 +++---- math/libm-test.c | 14 +++++++++++++- 6 files changed, 44 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 69294b6344..003eef6036 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +1999-08-19 Andreas Schwab + + * libio/iovswscanf.c (vswscanf): Make stream unoriented initially + and call _IO_fwide, to get the wide stream state initialized + correctly. Don't set _IO_JUMPS. + * libio/vsnprintf.c (_IO_vsnprintf): Avoid casts to _IO_FILE *. + * libio/vswprintf.c (_IO_vswprintf): Likewise. Pass + _IO_wstrn_jumps to _IO_no_init instead of setting _IO_WIDE_JUMPS + directly. + +1999-08-19 Andreas Jaeger + + * math/libm-test.c (jn_test): Fix typo in description. + (erfc_test): Add some more tests. + (erf_test): Add some more tests. + +1999-08-19 Andreas Schwab + + * csu/Makefile ($(objpfx)initfini.s): Replace $(no-exceptions) by + expression using $(exceptions). + 1999-08-18 Ulrich Drepper * sysdeps/generic/setenv.c: Avoid warning about uninitialized variable. diff --git a/csu/Makefile b/csu/Makefile index 0c782c9ea2..b2e806df58 100644 --- a/csu/Makefile +++ b/csu/Makefile @@ -87,7 +87,7 @@ CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(objpfx)initfini.s: initfini.c $(compile.c) -S $(CFLAGS-initfini.s) -finhibit-size-directive \ - $(no-exceptions) -o $@ + $(patsubst -f%,-fno-%,$(exceptions)) -o $@ # We only have one kind of startup code files. Static binaries and # shared libraries are build using the PIC version. diff --git a/libio/iovswscanf.c b/libio/iovswscanf.c index f0ab62a19c..262b018fbe 100644 --- a/libio/iovswscanf.c +++ b/libio/iovswscanf.c @@ -40,8 +40,8 @@ vswscanf (string, format, args) _IO_lock_t lock; sf._sbf._f._lock = &lock; #endif - _IO_no_init (&sf._sbf._f, 0, 1, &wd, &_IO_wstr_jumps); - _IO_JUMPS (&sf._sbf._f) = &_IO_str_jumps; + _IO_no_init (&sf._sbf._f, 0, 0, &wd, &_IO_wstr_jumps); + _IO_fwide (&sf._sbf._f, 1); _IO_wstr_init_static (&sf._sbf._f, (wchar_t *)string, 0, NULL); ret = _IO_vfwscanf (&sf._sbf._f, format, args, NULL); return ret; diff --git a/libio/vsnprintf.c b/libio/vsnprintf.c index 2b82df5788..8cf21d31c3 100644 --- a/libio/vsnprintf.c +++ b/libio/vsnprintf.c @@ -122,11 +122,11 @@ _IO_vsnprintf (string, maxlen, format, args) maxlen = sizeof (sf.overflow_buf); } - _IO_no_init ((_IO_FILE *) &sf, 0, -1, NULL, NULL); - _IO_JUMPS ((_IO_FILE *) &sf) = &_IO_strn_jumps; + _IO_no_init (&sf.f._sbf._f, 0, -1, NULL, NULL); + _IO_JUMPS (&sf.f._sbf._f) = &_IO_strn_jumps; string[0] = '\0'; - _IO_str_init_static ((_IO_FILE *) &sf, string, maxlen - 1, string); - ret = _IO_vfprintf ((_IO_FILE *) &sf, format, args); + _IO_str_init_static (&sf.f._sbf._f, string, maxlen - 1, string); + ret = _IO_vfprintf (&sf.f._sbf._f, format, args); if (sf.f._sbf._f._IO_buf_base != sf.overflow_buf) *sf.f._sbf._f._IO_write_ptr = '\0'; diff --git a/libio/vswprintf.c b/libio/vswprintf.c index addf39089c..0b4a458568 100644 --- a/libio/vswprintf.c +++ b/libio/vswprintf.c @@ -126,12 +126,11 @@ _IO_vswprintf (string, maxlen, format, args) maxlen = sizeof (sf.overflow_buf) / sizeof (wchar_t); } - _IO_no_init ((_IO_FILE *) &sf, 0, 0, &wd, NULL); - _IO_WIDE_JUMPS ((_IO_FILE *) &sf) = &_IO_wstrn_jumps; + _IO_no_init (&sf.f._sbf._f, 0, 0, &wd, &_IO_wstrn_jumps); _IO_fwide (&sf.f._sbf._f, 1); string[0] = L'\0'; - _IO_wstr_init_static ((_IO_FILE *) &sf, string, maxlen - 1, string); - ret = _IO_vfwprintf ((_IO_FILE *) &sf, format, args); + _IO_wstr_init_static (&sf.f._sbf._f, string, maxlen - 1, string); + ret = _IO_vfwprintf (&sf.f._sbf._f, format, args); if (sf.f._sbf._f._wide_data->_IO_buf_base != sf.overflow_buf) *sf.f._sbf._f._wide_data->_IO_write_ptr = '\0'; diff --git a/math/libm-test.c b/math/libm-test.c index b2e89d1506..4c7fe8b7ae 100644 --- a/math/libm-test.c +++ b/math/libm-test.c @@ -1116,6 +1116,12 @@ erf_test (void) check ("erf (1.2) == 0.9103139782...", FUNC(erf) (1.2), 0.91031397822963538024L); + check ("erf (2.0) == 0.99532...", FUNC(erf) (2.0), + 0.99532226501895273416L); + check ("erf (4.1) == 0.99999...", FUNC(erf) (4.1), + 0.99999999329997234592L); + check ("erf (27) == 1.0", FUNC(erf) (27), + 1.0L); } @@ -1138,6 +1144,12 @@ erfc_test (void) check_eps ("erfc (1.2) == 0.0896860218...", FUNC(erfc) (1.2), 0.089686021770364619762L, CHOOSE (0, 0, 8e-9)); + check_eps ("erfc (2.0) == 0.0046777349...", FUNC(erfc) (2.0), + 0.0046777349810472658379L, CHOOSE (0, 9e-19, 0)); + check_eps ("erfc (4.1) == 6.70002...*10^-9", FUNC(erfc) (4.1), + 0.67000276540848983727e-8L, CHOOSE (0, 2e-23, 6e-15)); + check ("erfc (9) == 4.13703...*10^-37", FUNC(erfc) (9), + 0.41370317465138102381e-36L); } @@ -5637,7 +5649,7 @@ jn_test (void) CHOOSE(0, 2e-35, 9.7e-27)); check_eps ("jn (10, 0.7) = 7.517...*10^-12", FUNC(jn) (10, 0.7), 0.75175911502153953928e-11, CHOOSE(0, 7e-27, 1.8e-18)); - check_eps ("jn (10, 1.0) = 2.630...*10^-11", FUNC(jn) (10, 1.0), 0.26306151236874532070e-9, + check_eps ("jn (10, 1.0) = 2.630...*10^-10", FUNC(jn) (10, 1.0), 0.26306151236874532070e-9, CHOOSE(0, 0, 5.6e-17)); check_eps ("jn (10, 2.0) = 2.515...*10^-7", FUNC(jn) (10, 2.0), 0.25153862827167367096e-6, CHOOSE(0, 2e-22, 1.2e-13));