Still broken in LLVM: https://gist.github.com/thestinger/f805fd61f2da9901d2fe4442d31c82ce …. Breaks memory/type safety guarantees in LLVM-based languages if they take advantage of non-returning functions like Rust. C11 does allow removing the loop but not what the 2nd example ends up doing. @johnregehr @spun_off @RichFelker
-
-
The problem with infinite2 is that it optimizes the loop away _in addition_ to assuming the puts is unreachable?
-
I.e. only the puts could legally be optimized away (As a dead code elimination)?
-
Yeah, it can be legally optimized away since the loop can't ever return but then it goes ahead with removing the loop.
-
What do you mean by "treat noreturn/halting as an _effect_? What is an effect in this context?
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.