Так Вы следом приводите ассемблерный фрагмент отдельной, незаинлайненной функции safe_add, в котором этой проверки нет. Заинлайниться-то она, конечно, может без этой проверки.
#include <limits.h>
#include <stdio.h>
int safe_add(int a, int b) {
int sum = a + b;
if (sum < a) { // проверка на переполнение
return -1;
}
return sum;
}
int main(void) {
printf("%d\n", safe_add(INT_MAX, 1));
return 0;
}
Вы уверены, что это корректный пример? Если второй аргумент отрицательный, условие истинно и нет никакого переполнения.
Так Вы следом приводите ассемблерный фрагмент отдельной, незаинлайненной функции safe_add, в котором этой проверки нет. Заинлайниться-то она, конечно, может без этой проверки.
Вы уверены, что это корректный пример? Если второй аргумент отрицательный, условие истинно и нет никакого переполнения.
Ничего себе! Очень интересно, что у Вас входит в понятие «ПО», раз предлагаете для его разработки смело учить JavaScript.