Проверка на переполнение есть в коде, проходит ревью и работает в отладочной сборке — а после оптимизации исчезает из бинарника. Разберём, почему компилятор имеет на это полное право, как неопределённое поведение влияет на указатели, память и проверки, и чем ловить такие ошибки до того, как они…
Компилятор удалил вашу проверку на переполнение. И он прав
Это краткое изложение. Полный текст материала доступен на сайте источника.