>test.c: In function 'main':
>test.c:8: warning: assuming signed overflow does not occur when assuming that (X + c) > X is always true
>
>Т.е., теперь это будет ошибка времени исполнения? Это не ошибка, это предупреждение! (warning), если врубите -Werror, будет ошибка.
>Иначе я не вижу в этом большого смысла. В прочем, и так не вижу.
Живой пример из Midnight Commander_a
#define MAX_DST_WIDTH (365*24*60*60) /* секунд в году */
#define TIME_T_MIN ((time_t)0 < (time_t) -1 ? (time_t) 0 \
: ~ (time_t) 0 << (sizeof (time_t) * CHAR_BIT - 1))
#define TIME_T_MAX (~ (time_t) 0 - TIME_T_MIN)
/* no entry will cover more than 6 months */
low = t - MAX_DST_WIDTH/2;
if (t < low)
low = TIME_T_MIN;
high = t + MAX_DST_WIDTH/2;
if (high < t)
high = TIME_T_MAX;