https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90949
Łukasz Kucharski <luk32 at o2 dot pl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |luk32 at o2 dot pl --- Comment #5 from Łukasz Kucharski <luk32 at o2 dot pl> --- Hi, I am the guy who isolated the issue for c++, behind the question. If this isn't too much, could anyone explain why does changing type of cleanup from int to bool solves the issue? Everything else I can understand, because those are changes in observable behaviour. Do the optimizers treat boolean and integers differently, even in bool contexts? This is intriguing. I know this is tangential, but it really bugs me and I am not sure if I can study the sourcecode of gcc optimizer in reasonable time.