Re:“Pack it in, mathematicians, someone owes LLVM a million ...
by foxfluff on Thursday August 19, 2021 @12:05PM
(#28235575)
I know. I've used C for two decades, I write it professionally today.
Some bugs end up being extremely difficult to debug. I accept that as a fact of life; in exchange, we get pretty decent performance.
Guess what I do when there's a bug I have a hard time pinning down? Recompile with optimizations turned off.
By the way, I don't think I have ever witnessed a bug caused by an accidentally-infinite loop getting optimized out. So making that almost-never-happens situation easier to fix is not worth trading any optimizations for, imo. I'd rather just get a warning from compiler/static analyzer (if the code isn't the way it is due to macro expansion).
Consider this hypothetical: the loop is only potentially infinite because it is written incorrectly. In testing, I would notice an infinite loop and debugging where that is happening is pretty trivial. When the compiler optimizes that away to just always return true, it has made the source of the bug much more difficult to pin down because the code I asked the compiler to make produces a completely different result than what the compiler compiled.