История изменений
Исправление wandrien, (текущая версия) :
Я пока не знаю компилятора, который при UB компиляет программу которая форматирует диск. Обычно делается всё-таки что-то осмысленное в контексте конкретного компилятора: исторически сложившееся поведение, что-то характерное/необходимое на конкретной платформе, ошибка компиляции и т.п.
Зато я знаю программу, которая при наличии UB передаёт управление в случайную функцию, которая оказалась в бинарнике рядом. Годится как пример потенциального «форматирования диска»?
Проблема UB не в том, что это ошибки. Проблема UB в том, что они развязывают руки компилятору вообще не закладываться на эти кейсы. И разрабы компиляторов этим активно пользуются. Нет задачи диагностировать эти кейсы как ошибки, нет задачи предотвращать. Всем просто плевать.
Исходная версия wandrien, :
Я пока не знаю компилятора, который при UB компиляет программу которая форматирует диск. Обычно делается всё-таки что-то осмысленное в контексте конкретного компилятора: исторически сложившееся поведение, что-то характерное/необходимое на конкретной платформе, ошибка компиляции и т.п.
Зато я знаю программу, которая при наличии UB передаёт управление в случайную функцию, которая оказалась в бинарнике рядом. Годится как пример потенциального «форматирования диска»?
Проблему UB не в том, что это ошибки. Проблема UB в том, что они развязывают руки компилятору вообще не закладываться на эти кейсы. Нет задачи диагностировать эти кейсы как ошибки, нет задачи предотвращать. Всем просто плевать.