main: add assertions for timespec signedness
Some of the code (e.g. util and clientlog) may work with negative values. Require that time_t and the tv_nsec types are signed. This seems to be the case on all supported systems, but it it is not required by POSIX.
This commit is contained in:
parent
a0a9560258
commit
d5894c0738
1 changed files with 7 additions and 0 deletions
7
main.c
7
main.c
|
@ -76,11 +76,18 @@ static REF_Mode ref_mode = REF_ModeNormal;
|
||||||
static void
|
static void
|
||||||
do_platform_checks(void)
|
do_platform_checks(void)
|
||||||
{
|
{
|
||||||
|
struct timespec ts;
|
||||||
|
|
||||||
/* Require at least 32-bit integers, two's complement representation and
|
/* Require at least 32-bit integers, two's complement representation and
|
||||||
the usual implementation of conversion of unsigned integers */
|
the usual implementation of conversion of unsigned integers */
|
||||||
assert(sizeof (int) >= 4);
|
assert(sizeof (int) >= 4);
|
||||||
assert(-1 == ~0);
|
assert(-1 == ~0);
|
||||||
assert((int32_t)4294967295U == (int32_t)-1);
|
assert((int32_t)4294967295U == (int32_t)-1);
|
||||||
|
|
||||||
|
/* Require time_t and tv_nsec in timespec to be signed */
|
||||||
|
ts.tv_sec = -1;
|
||||||
|
ts.tv_nsec = -1;
|
||||||
|
assert(ts.tv_sec < 0 && ts.tv_nsec < 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
Loading…
Reference in a new issue