On Thu, May 9, 2019 at 12:28 PM Steven Rostedt <rost...@goodmis.org> wrote: > > But it probably would probably still be good to know why this fixes the > issues you see.
Looks like a compiler bug, plain and simple. The simplified case really simplifies a lot for the internal IR, and has a single conditional that then increments a constant location and returns a constant value. That means that any branch following code in the compiler has a much simpler setup, and doesn't need to try to follow any chain of condirional branches with the same conditional to generate sane code. But the code generation problem is clearly a compiler bug, although I'd not be surprised if it's also triggered by whatever horrid things ASAN does internally to gcc state. Linus