Рэймонд Чен объясняет: ud2 в коде ставят там, где программа не должна была оказаться, например в конце функции, которая должна вернуть значение, но не возвращает его, и падение на ud2 означает логическую ошибку. Я проверил обратное: если падения на ud2 нет, значит ли это, что ошибки нет. Одна и та…
Что исполняет C++-программа при пропущенном return после сборки с -O2
Это краткое изложение. Полный текст материала доступен на сайте источника.