История изменений
Исправление firkax, (текущая версия) :
Идея очень простая: переполнение int - UB, посему «не случается», что даёт компилятору бОльший простор для оптимизаций. Классический пример - лупчик с умножением в теле которое трансформируется в сложение.
Выглядит теоретизированием. Практический пример конкретного кода есть? Хорошего кода, а не так что компилятор исправляет идиотизм кодера.
И кстати
переполнение int - UB
это режим -fstrict-overflow и в нём с signed-ами ещё больше проблем чем в обычном. Потому что переполнение, когда оно таки случится, возможности гарантированно поймать нет вообще, и надо костыльно-ручные проверки диапазона заранее везде ставить в итоге. Да, в ряде случаев диапазон действительно имеется и можно его проверить, но во многих его приходится именно придумывать ради проверок.
Исправление firkax, :
Идея очень простая: переполнение int - UB, посему «не случается», что даёт компилятору бОльший простор для оптимизаций. Классический пример - лупчик с умножением в теле которое трансформируется в сложение.
Выглядит теоретизированием. Практический пример конкретного кода есть? Хорошего кода, а не так что компилятор исправляет идиотизм кодера.
И кстати
переполнение int - UB
это режим -fstrict-overflow и в нём с signed-ами ещё больше проблем чем в обычном. Потому что переполнение, когда оно таки случится, возможности гарантированно поймать нет вообще, и надо костыльно-ручные проверки диапазона заранее везде ставить в итоге.
Исправление firkax, :
Идея очень простая: переполнение int - UB, посему «не случается», что даёт компилятору бОльший простор для оптимизаций. Классический пример - лупчик с умножением в теле которое трансформируется в сложение.
Выглядит теоретизированием. Практический пример конкретного кода есть? Хорошего кода, а не так что компилятор исправляет идиотизм кодера.
И кстати
переполнение int - UB
это режим -fstrict-overflow и в нём с signed-ами ещё больше проблем чем в обычном. Потому что переполнение, когда оно таки случится, возможности поймать нет вообще, и надо костыльно-ручные проверки диапазона заранее везде ставить в итоге.
Исходная версия firkax, :
Идея очень простая: переполнение int - UB, посему «не случается», что даёт компилятору бОльший простор для оптимизаций. Классический пример - лупчик с умножением в теле которое трансформируется в сложение.
Выглядит теоретизированием. Практический пример конкретного кода есть? Хорошего кода, а не так что компилятор исправляет идиотизм кодера.