История изменений
Исправление intelfx, (текущая версия) :
Эта функция делает сначала одно, потом на третий вызов внезапно другое, затем снова возвращается к «обычной» работе.
И что? Может быть, так и было задумано? Компилятор не может и не должно волновать, что у функции долбанутый control flow и есть скрытое состояние. Это забота человека.
И да, попробуй описать словами, что именно делает функция, и для чего.
Первые два вызова — прибавляет *q к *p. На третий вызов вычитает *p из *q. Потом labs(INT_MIN) вызовов снова прибавляет *q к *p, потом происходит знаковое переполнение и UB.
Исправление intelfx, :
Эта функция делает сначала одно, потом на третий вызов внезапно другое, затем снова возвращается к «обычной» работе.
И что? Может быть, так и было задумано?
И да, попробуй описать словами, что именно делает функция, и для чего.
Первые два вызова — прибавляет *q к *p. На третий вызов вычитает *p из *q. Потом labs(INT_MIN) вызовов снова прибавляет *q к *p, потом происходит знаковое переполнение и UB.
Исправление intelfx, :
Эта функция делает сначала одно, потом на третий вызов внезапно другое, затем снова возвращается к «обычной» работе.
И что? Может быть, так и было задумано?
И да, попробуй описать словами, что именно делает функция, и для чего.
Первые два вызова — прибавляет *q к *p. На третий вызов вычитает *q из *p. Потом labs(INT_MIN) вызовов снова прибавляет *q к *p, потом происходит знаковое переполнение и UB.
Исходная версия intelfx, :
Первые два вызова — прибавляет *q к *p. На третий вызов вычитает *q из *p. Потом labs(INT_MIN) вызовов снова прибавляет *q к *p, потом происходит знаковое переполнение и UB.