Comment by jibalt

4 hours ago

Certainly there's a UB free C subset ... everything specified by the C Standard or designated as implementation-defined is UB free by definition.

UB in C potentially destroys the universe so C programmers do their best to avoid it. A backend that generates C code is a lot more easily constrained than arbitrary manual code. While it's conceivable that a C backend could produce UB code, it would be a severe bug and isn't likely. It most certainly isn't "by definition" ... that suggests some serious conceptual error.