1999-07-29  Andreas Schwab  <schwab@suse.de>

	* misc/efgcvt.c (NDIGIT_MAX): Provide precomputed constants for
	all floating point formats supported by gcc.  Error out for
	unhandled precisions.
	* misc/efgcvt_r.c (NDIGIT_MAX): Likewise.
	* misc/qefgcvt.c (NDIGIT_MAX): Likewise.
	* misc/qefgcvt_r.c (NDIGIT_MAX): Likewise.
This commit is contained in:
Ulrich Drepper 1999-07-29 22:34:58 +00:00
parent dbc75fb3cc
commit f9a2a6369d
6 changed files with 42 additions and 9 deletions

6
BUGS
View File

@ -1,7 +1,7 @@
List of known bugs (certainly very incomplete) List of known bugs (certainly very incomplete)
---------------------------------------------- ----------------------------------------------
Time-stamp: <1999-07-06T15:37:11-0700 drepper> Time-stamp: <1999-07-29T15:25:53-0700 drepper>
This following list contains those bugs which I'm aware of. Please This following list contains those bugs which I'm aware of. Please
make sure that bugs you report are not listed here. If you can fix one make sure that bugs you report are not listed here. If you can fix one
@ -59,10 +59,6 @@ Severity: [ *] to [***]
[ *] The strftime() implementation cannot handle multibyte locales really [ *] The strftime() implementation cannot handle multibyte locales really
good since the TOLOWER and TOUPPER are not prepared. good since the TOLOWER and TOUPPER are not prepared.
[ *] The putenv() function copies it's argument which means that the
string (and possible later changes to it) are not automatically
reflected in the environment.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ulrich Drepper Ulrich Drepper
drepper@cygnus.com drepper@cygnus.com

View File

@ -1,3 +1,12 @@
1999-07-29 Andreas Schwab <schwab@suse.de>
* misc/efgcvt.c (NDIGIT_MAX): Provide precomputed constants for
all floating point formats supported by gcc. Error out for
unhandled precisions.
* misc/efgcvt_r.c (NDIGIT_MAX): Likewise.
* misc/qefgcvt.c (NDIGIT_MAX): Likewise.
* misc/qefgcvt_r.c (NDIGIT_MAX): Likewise.
1999-07-29 Ulrich Drepper <drepper@cygnus.com> 1999-07-29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/setenv.c: Move setenv code in new function * sysdeps/generic/setenv.c: Move setenv code in new function

View File

@ -33,8 +33,14 @@
# define MAXDIG (NDIGIT_MAX + 3) # define MAXDIG (NDIGIT_MAX + 3)
# if DBL_MANT_DIG == 53 # if DBL_MANT_DIG == 53
# define NDIGIT_MAX 17 # define NDIGIT_MAX 17
# elif DBL_MANT_DIG == 24
# define NDIGIT_MAX 9
# elif DBL_MANT_DIG == 56
# define NDIGIT_MAX 18
# else # else
/* See IEEE 854 5.6, table 2 for this formula. */ /* See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a
compile time constant here, so we cannot use it. */
# error "NDIGIT_MAX must be precomputed"
# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0))) # define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0)))
# endif # endif
#endif #endif

View File

@ -32,8 +32,14 @@
# define FLOAT_NAME_EXT # define FLOAT_NAME_EXT
# if DBL_MANT_DIG == 53 # if DBL_MANT_DIG == 53
# define NDIGIT_MAX 17 # define NDIGIT_MAX 17
# elif DBL_MANT_DIG == 24
# define NDIGIT_MAX 9
# elif DBL_MANT_DIG == 56
# define NDIGIT_MAX 18
# else # else
/* See IEEE 854 5.6, table 2 for this formula. */ /* See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a
compile time constant here, so we cannot use it. */
# error "NDIGIT_MAX must be precomputed"
# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0))) # define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0)))
# endif # endif
#endif #endif

View File

@ -28,8 +28,16 @@
#define MAXDIG (NDIGIT_MAX + 12) #define MAXDIG (NDIGIT_MAX + 12)
#if LDBL_MANT_DIG == 64 #if LDBL_MANT_DIG == 64
# define NDIGIT_MAX 21 # define NDIGIT_MAX 21
#elif LDBL_MANT_DIG == 53
# define NDIGIT_MAX 17
#elif LDBL_MANT_DIG == 113
# define NDIGIT_MAX 36
#elif LDBL_MANT_DIG == 56
# define NDIGIT_MAX 18
#else #else
/* See IEEE 854 5.6, table 2 for this formula. */ /* See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a
compile time constant here, so we cannot use it. */
# error "NDIGIT_MAX must be precomputed"
# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * LDBL_MANT_DIG + 1.0))) # define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * LDBL_MANT_DIG + 1.0)))
#endif #endif

View File

@ -26,8 +26,16 @@
#define FLOAT_NAME_EXT l #define FLOAT_NAME_EXT l
#if LDBL_MANT_DIG == 64 #if LDBL_MANT_DIG == 64
# define NDIGIT_MAX 21 # define NDIGIT_MAX 21
#elif LDBL_MANT_DIG == 53
# define NDIGIT_MAX 17
#elif LDBL_MANT_DIG == 113
# define NDIGIT_MAX 36
#elif LDBL_MANT_DIG == 56
# define NDIGIT_MAX 18
#else #else
/* See IEEE 854 5.6, table 2 for this formula. */ /* See IEEE 854 5.6, table 2 for this formula. Unfortunately we need a
compile time constant here, so we cannot use it. */
# error "NDIGIT_MAX must be precomputed"
# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * LDBL_MANT_DIG + 1.0))) # define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * LDBL_MANT_DIG + 1.0)))
#endif #endif