# HG changeset patch # User Paul Eggert # Date 1296408983 28800 # Node ID 1662b19c2c7aac08f406ec1fea0363f7d19dc3d7 # Parent d54c81f4d85ac33d37575e318d8ee3101e470148 mktime: clarify long_int width checking * lib/mktime.c (long_int_is_wide_enough): Move this assertion to the top level, to make it clearer that the assumption about long_int width is being checked. See . diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-01-30 Paul Eggert + + mktime: clarify long_int width checking + * lib/mktime.c (long_int_is_wide_enough): Move this assertion to + the top level, to make it clearer that the assumption about + long_int width is being checked. See + . + 2011-01-30 Simon Josefsson ignore-value: Fix self-test. diff --git a/lib/mktime.c b/lib/mktime.c --- a/lib/mktime.c +++ b/lib/mktime.c @@ -64,12 +64,16 @@ # define mktime my_mktime #endif /* DEBUG */ +/* Verify a requirement at compile-time (unlike assert, which is runtime). */ +#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } + /* A signed type that is at least one bit wider than int. */ #if INT_MAX <= LONG_MAX / 2 typedef long int long_int; #else typedef long long int long_int; #endif +verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2); /* Shift A right by B bits portably, by dividing A by 2**B and truncating towards minus infinity. A and B should be free of side @@ -123,9 +127,6 @@ #endif #define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1) -/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } - verify (time_t_is_integer, TYPE_IS_INTEGER (time_t)); verify (twos_complement_arithmetic, (TYPE_TWOS_COMPLEMENT (int) @@ -196,8 +197,6 @@ int year0, int yday0, int hour0, int min0, int sec0) { verify (C99_integer_division, -1 / 2 == 0); - verify (long_int_year_and_yday_are_wide_enough, - INT_MAX == INT_MAX * (long_int) 2 / 2); /* Compute intervening leap days correctly even if year is negative. Take care to avoid integer overflow here. */ @@ -733,6 +732,6 @@ /* Local Variables: -compile-command: "gcc -DDEBUG -Wall -W -O2 -g mktime.c -o mktime" +compile-command: "gcc -DDEBUG -I. -Wall -W -O2 -g mktime.c -o mktime" End: */