Comment by masklinn

11 days ago

Afaik loop {} has never been UB, however because llvm started as a c++ compiled where it is, this has been causing miscompilations in rust and C for… nearly two decades (llvm issue 965).

Sure, I think it was still under the same unsound tag regardless.

  • Unsoundness and UB are very different things, UB tells users of the language "don't do that it's wrong", unsoundness tells users of the language "be careful we need to fix that", it's a bug.

Since the Rust language is defined by the Rust compiler and has no other specification, if it's UB in the compiler then it's UB in the language.