Since icycles and tcycles are of different types, there could be some conversion involved at line 1295, with possible data truncation. Thus, the comparisons on line 1296 might not be always false. (I think there were some recent comments about the possibility of time_t being a non-integral type...) -----Original Message----- From: tz-bounces@iana.org [mailto:tz-bounces@iana.org] On Behalf Of Alois Treindl Sent: Wednesday, August 07, 2013 6:09 AM To: tz@iana.org Subject: [tz] source code question regarding localtime.c PS In localtime.c, function localsub() are these three lines of code: 1295 icycles = tcycles; 1296 if (tcycles - icycles >= 1 || icycles - tcycles >= 1) 1297 return NULL; I do not understand the reason why lines 1296 and 1297 exist. icycles and tcycles are equal. Their difference is always zero. Why test for it being not zero? PS: the reason why I am asking: I try to understand the source code of zdump.c It calls localtime() frequently, and has some cryptic code which depends on whether localtime() returned NULL. Therefore, I try to understand the conditions under which localtime() returns NULL. If that would be documented somewhee (I may have overlooked it), it would be great, as it is rather hard to understand it out of the terse code.