История изменений
Исправление firkax, (текущая версия) :
В j
он ничего и не записывает, он эту переменную вообще выкинул «за ненадобностью», и сделал виртуальную новую, в которой записано бывшее j
, сразу умноженное на 0x20000001
, и следит только а ней. Поскольку j
было нужно в условии j<9
, он это условие переделал в (j*0x20000001)<(9*0x20000001)
. Это переделанное условие не равноценно исходному, но багоделам, которые писали компилятор, плевать.
Исправление firkax, :
В j
он ничего и не записывает, он эту переменную вообще выкинул «за ненадобностью», и сделал виртуальную новую, в которой записано бывшее j
, сразу умноженное на 0x20000001
, и следит только а ней. Поскольку j
было нужно в условии j<9
, он это условие переделал в (j*0x20000001)<(9*0x20000001)
. Это переделанное условие не равноценно исходному и устраивает переполнение при умножении двух констант, но багоделам, которые писали компилятор, плевать.
Исходная версия firkax, :
В j
он ничего и не записывает, он эту переменную вообще выкинул «за ненадобностью», и сделал виртуальную новую, в которой записано бывшее j
, сразу умноженное на 0x20000001
, и следит только а ней. Поскольку j
было нужно в условии j<9
, он это условие переделал в (j*0x20000001)<(9*0x20000001)
.