[tz] Compiler warning in tzcode2016g about SIZE_MAX being wider than int
Tom Lane
tgl at sss.pgh.pa.us
Sun Nov 6 19:05:55 UTC 2016
Robert Elz <kre at munnari.OZ.AU> writes:
> I had been wondering about the need for nitems_max as a variable though
> and wondered if perhaps
> #define NITEMS_MAX (PTRDIFF_MAX - WORK_AROUND_QTBUG_53071)
> ptrdiff_t amax = NITEMS_MAX < SIZE_MAX ? NITEMS_MAX : SIZE_MAX;
> might not work just as well, and avoid (at least) the gcc warning
> (though I am yet to actually test this hypothesis). It will probably
> fall foul of the "constant comparison" warning though. Ugh!!!
Yeah, I'd been wondering about that too, but it seems unlikely to avoid
warnings. What about doing the comparison in an #if?
#define NITEMS_MAX (PTRDIFF_MAX - WORK_AROUND_QTBUG_53071)
#if NITEMS_MAX < SIZE_MAX
#define AMAX ((ptrdiff_t) NITEMS_MAX)
#else
#define AMAX ((ptrdiff_t) SIZE_MAX)
#endif
... then use AMAX in place of the variable ...
regards, tom lane
More information about the tz
mailing list