Here are some compiler warnings that it would probably be good to be rid of.  The compiler is optimizing away intended overflow tests in some cases.  Results of integer operations are officially undefined when overflow occurs, so the compiler is within its rights in making this kind of assumption.<div>
<br></div><div>$ gcc -Wall -O3 -c *.c</div><div><br></div><div><div><div>localtime.c: In function ‘timesub’:</div><div>localtime.c:1541: warning: assuming signed overflow does not occur when assuming that (X + c) &lt; X is always false</div>
<div>localtime.c:1545: warning: assuming signed overflow does not occur when assuming that (X - c) &gt; X is always false</div><div>localtime.c: In function ‘T.144’:</div><div>localtime.c:1727: warning: assuming signed overflow does not occur when assuming that (X + c) &lt; X is always false</div>
<div>localtime.c:1738: warning: assuming signed overflow does not occur when assuming that (X + c) &lt; X is always false</div><div>localtime.c:1748: warning: assuming signed overflow does not occur when assuming that (X + c) &lt; X is always false</div>
<div>localtime.c:1752: warning: assuming signed overflow does not occur when assuming that (X - c) &gt; X is always false</div><div>localtime.c:1768: warning: assuming signed overflow does not occur when assuming that (X - c) &gt; X is always false</div>
</div></div><div><br></div><div><div>zdump.c: In function ‘main’:</div><div>zdump.c:442: warning: assuming signed overflow does not occur when assuming that (X - c) &gt; X is always false</div></div><div><br></div><div><div>
$ gcc --version</div><div>gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3</div></div><div><br></div><div>  -- Andy Heninger</div><div><br></div>