about summary refs log tree commit diff
path: root/posix/bug-regex20.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2004-11-11 22:31:17 +0000
committerRoland McGrath <roland@gnu.org>2004-11-11 22:31:17 +0000
commit29311370cd23623cc227a67c54ae3bdd0f7d7058 (patch)
treeceb71df3dc632ec9ace06cd8ed9d75c9463e55e5 /posix/bug-regex20.c
parent37b1a1540170d8154435099d50da5b34a56bdbf1 (diff)
downloadglibc-29311370cd23623cc227a67c54ae3bdd0f7d7058.tar.gz
glibc-29311370cd23623cc227a67c54ae3bdd0f7d7058.tar.xz
glibc-29311370cd23623cc227a67c54ae3bdd0f7d7058.zip
[BZ #535]
2004-11-09  Paul Eggert  <eggert@cs.ucla.edu.
	[BZ #535]
	* time/difftime.c: Fix a double-rounding bug on hosts with
	64-bit time_t and long double being IEEE double.  Also, port
	to more valid C99 hosts, even those that have padding bits.
	Don't include <values.h> since it is marked as an obsolescent
	interface.  Include <limits.h>, <float.h>, and <stdint.h> instead.
	(TYPE_BITS, TYPE_FLOATING, TYPE_SIGNED): New macros.
	(subtract): New static function, that works correctly without
	double-rounding, even on hosts with 64-bit time_t.  Also cater
	to hosts with padding bits.
	(__difftime): Use it.  Use DBL_MANT_DIG and LDBL_MANT_DIG to
	determine whether floating types are wide enough: the old
	test (which used sizeof) could in theory report the wrong results
	on hosts with padding bits in floating-point values.
Diffstat (limited to 'posix/bug-regex20.c')
0 files changed, 0 insertions, 0 deletions