Mercurial > hg > octave-lyh > gnulib-hg
changeset 13785:ff58e398c6aa
time: enforce recent POSIX ruling that time_t is integral
* lib/time.in.h (__time_t_must_be_integral): Detect any
problematic systems, allowing the rest of gnulib to assume POSIX.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Fri, 08 Oct 2010 17:15:47 -0600 |
parents | 69ee8a8d4ebd |
children | 750118044e06 |
files | ChangeLog lib/time.in.h |
diffstat | 2 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-10-08 Eric Blake <eblake@redhat.com> + + time: enforce recent POSIX ruling that time_t is integral + * lib/time.in.h (__time_t_must_be_integral): Detect any + problematic systems, allowing the rest of gnulib to assume POSIX. + 2010-10-08 Jim Meyering <meyering@redhat.com> fdopendir: fix a bug on systems lacking openat and /proc support
--- a/lib/time.in.h +++ b/lib/time.in.h @@ -84,6 +84,15 @@ # endif # endif +/* Per http://austingroupbugs.net/view.php?id=327, POSIX requires + time_t to be an integer type, even though C99 permits floating + point. We don't know of any implementation that uses floating + point, and it is much easier to write code that doesn't have to + worry about that corner case, so we force the issue. */ +struct __time_t_must_be_integral { + unsigned int __floating_time_t_unsupported : 2 * ((time_t) 1 / 2 == 0) - 1; +}; + /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See <http://www.opengroup.org/susv3xsh/nanosleep.html>. */