LINUX.ORG.RU

История изменений

Исправление Iron_Bug, (текущая версия) :

нашла: у gcc есть опция -fwrapv, которая отменяет оптимизацию без учёта переполнения. если её добавить, всё будет работать нормально, с любым -Ox.

на самом деле, достаточно даже такого кода:

        int a = 0x77359400;
        int b = 0x77359400;
        int c = a+b;
        printf("%d\t%d\t%d\t%d\n", a+b, a, a+b<a, c<a);
интересные результаты с и без опции -fwrapv.

но ситуация спорная, потому что переполнение - это, по идее, тоже ошибка. в рабочем софте его лучше не использовать.

Исходная версия Iron_Bug, :

нашла: у gcc есть опция -fwrapv, которая отменяет оптимизацию без учёта переполнения.

но ситуация спорная, потому что переполнение - это, по идее, тоже ошибка. в рабочем софте его лучше не использовать.