Отредактировано, чтобы включить надлежащую стандартную ссылку благодаря Carl Norum.
Стандартные состояния C
Если при оценке выражения возникает исключительное условие (т.е. если результат не определяется математически или нет в диапазоне представляемых значений для его типа), то поведение undefined.
Существуют ли ключи компилятора, которые гарантируют определенное поведение при переполнении целого числа? Я бы хотел избежать носовых демонов. В частности, я хотел бы заставить компилятор обернуться при переполнении.
Для единственности возьмем стандарт, чтобы быть C99, а компилятор - gcc. Но меня бы интересовали ответы других компиляторов (icc, cl) и других стандартов (C1x, C89). На самом деле, просто чтобы раздражать толпу C/С++, я бы даже оценил ответы на С++ 0x, С++ 03 и С++ 98.
Примечание: Международный стандарт ISO/IEC 10967-1 может иметь значение здесь, но, насколько я мог судить, он упоминался только в информационном приложении.