From 589b85d1126dfe93d1cf37c82b7920d2ddbd5616 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 18 Jun 2007 23:09:12 +0000 Subject: [PATCH] Detect porting problems to FreeBSD/arm, which has time_t wider than long int. Original problem reported for GNU diff by Xin Li in . * 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. --- ChangeLog | 9 +++++++++ lib/getdate.y | 10 ++++++++++ modules/getdate | 2 ++ 3 files changed, 21 insertions(+) diff --git a/ChangeLog b/ChangeLog index 12fd89f5b..5fe1932a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-06-18 Paul Eggert + + Detect porting problems to FreeBSD/arm, which has time_t wider than + long int. Original problem reported for GNU diff by Xin Li in + . + * 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 New module: mreadlink-with-size. diff --git a/lib/getdate.y b/lib/getdate.y index cbf3ca104..e34f4a942 100644 --- a/lib/getdate.y +++ b/lib/getdate.y @@ -35,7 +35,10 @@ #include #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 diff --git a/modules/getdate b/modules/getdate index 653fd7a53..88b51af37 100644 --- a/modules/getdate +++ b/modules/getdate @@ -12,9 +12,11 @@ m4/getdate.m4 Depends-on: stdbool gettime +intprops mktime setenv time +verify xalloc configure.ac: -- 2.11.0