> Loops that Neither Perform I/O nor Terminate
> Summary: This UB is probably not a problem in practice (even if it is moderately displeasing to some of us).
Since LLVM is mostly based around C/C++ semantics this actually turned out to be a problem for rust, because rust can encode diverging functions in its type system and assume certain code sections to be unreachable. If the compiler then optimizes out code and the unreachable (thus not-compiled) section is reached things explode.