Помнится, давным давно, когда раста еще не было, а на роль «убийцы С++» претендовала жава, на ЛОРе регулярно постили темы вида «жава обогнала си в 100 раз». Однажды убивцы С++ погорячились и выложили новость про очередное улучшение JVM, где в числе прочих достижений было написано нечто в духе «выполнило бесконечный цикл быстрее чем С». За сиё потом жабистов подтраливали: «жаба уже быстрее процессора», «жаба может выполнить бесконечный цикл до конца».
Благодаря усилиям секты свидетелей святого UB, старая шутка стала реальностью:
In brief, infinite loops containing no side effects produce undefined behavior in C++ (and C in some cases), however in other languages, they have fully defined behavior. LLVM's optimizer currently assumes that infinite loops eventually terminate in a few places, and will sometimes delete them in practice. There is currently no clean way to opt out of this behavior from languages where it's not valid.
Растаманы, не пляшите от радости: вам тоже попало по жопе. А вы что думали, зайки, можно просто так вставить в компилятор какашечку потому что волшебное слово UB позволяет? Теперь это и ваша какашечка. Не срите в колодец, вам же оттуда кушать потом.
Перемещено tailgunner из development