I know about all these theoretical possibilities of numbers behaving in strange ways when arithmetic optimizations assume that signed overflow won't occur when they actually might. Yep, it creates subtle bugs. The warning is worthwhile. Still and all:
485 tvdiff = abs_tval(sub_tval(timetv, tvlast)); 486 if (tvdiff.tv_sec != 0) { systime.c: In function 'step_systime': systime.c:486:5: warning: assuming signed overflow does not occur when simplifying conditional to constant [-Wstrict-overflow] What possible optimization might be going on to cause an overflow problem when I simply want to know if the "tv_sec" field is zero or not? (BTW, in current source, "tvdiff" is a structure that is returned by abs_tval()) $ gcc --version gcc (SUSE Linux) 4.8.5 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.