История изменений
Исправление shdown, (текущая версия) :
Это, конечно, наглая ложь. В ядре твоё UB находят с завидной регулярностью. В основном из-за рефакторинга, когда поменяли один кусок кода, а в другой, связанный с первым, проверить забыли.
Ага. А где опытный разработчик напоролся на UB, про которое он не знал, что это UB? Т.е. вот написал, например,
size_t a = something();
// В 'hi' будут верхние 32 бита, в 'lo' — нижние, и ниипёт
uint32_t hi = a >> 32, lo = a;
Круто. А что делать, если хочешь новый стандарт? Перелопачивать весь код?
Ну конечно. Они где-то заявляют обратную совместимость? Насколько я знаю, нет.
Беззакония не было. Было «implementation-defined behaviour».
Было. Посмотри таблицу, оно не укладывалось в то, что стандарт называет implementation-defined behavior.
Исходная версия shdown, :
Это, конечно, наглая ложь. В ядре твоё UB находят с завидной регулярностью. В основном из-за рефакторинга, когда поменяли один кусок кода, а в другой, связанный с первым, проверить забыли.
Ага. А где опытный разработчик напоролся на UB, про которое он не знал, что это UB?
Круто. А что делать, если хочешь новый стандарт? Перелопачивать весь код?
Ну конечно. Они где-то заявляют обратную совместимость? Насколько я знаю, нет.
Беззакония не было. Было «implementation-defined behaviour».
Было. Посмотри таблицу, оно не укладывалось в то, что стандарт называет implementation-defined behavior.