Mercurial > hg > octave-nkf > gnulib-hg
changeset 8987:9d7e51011293
Detect porting problems to FreeBSD/arm, which has time_t wider than
long int. Original problem reported for GNU diff by Xin Li in
<http://lists.gnu.org/archive/html/bug-gnu-utils/2007-06/msg00091.html>.
* modules/getdate (Depends-on): Add intprops, verify.
* lib/getdate.y: Include intprops.h, verify.h. Verify that time_t
is an integer type no wider than long int.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Mon, 18 Jun 2007 23:09:12 +0000 |
parents | c931406ac6ef |
children | 4162ebc5fa6c |
files | ChangeLog lib/getdate.y modules/getdate |
diffstat | 3 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-06-18 Paul Eggert <eggert@cs.ucla.edu> + + Detect porting problems to FreeBSD/arm, which has time_t wider than + long int. Original problem reported for GNU diff by Xin Li in + <http://lists.gnu.org/archive/html/bug-gnu-utils/2007-06/msg00091.html>. + * modules/getdate (Depends-on): Add intprops, verify. + * lib/getdate.y: Include intprops.h, verify.h. Verify that time_t + is an integer type no wider than long int. + 2007-06-18 Jim Meyering <jim@meyering.net> New module: mreadlink-with-size.
--- a/lib/getdate.y +++ b/lib/getdate.y @@ -35,7 +35,10 @@ #include <config.h> #include "getdate.h" + +#include "intprops.h" #include "timespec.h" +#include "verify.h" /* There's no need to extend the stack, so there's no need to involve alloca. */ @@ -107,6 +110,13 @@ #define HOUR(x) ((x) * 60) +/* Lots of this code assumes time_t and time_t-like values fit into + long int. It also assumes that signed integer overflow silently + wraps around, but there's no portable way to check for that at + compile-time. */ +verify (TYPE_IS_INTEGER (time_t)); +verify (LONG_MIN <= TYPE_MINIMUM (time_t) && TYPE_MAXIMUM (time_t) <= LONG_MAX); + /* An integer value, and the number of digits in its textual representation. */ typedef struct