https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108920
Bug ID: 108920 Summary: Condition falsely optimized out Product: gcc Version: 9.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: agner at agner dot org Target Milestone: --- Created attachment 54526 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54526&action=edit code to reproduce error The attached file test.cpp gives wrong code when optimized with -O2 or higher. To reproduce error, do: g++ -O2 -m64 -S -o t1.s test.cpp g++ -O2 -m64 -S -DFIX -o t2.s test.cpp The condition in line 104 in test.cpp is optimized away in t1.s The workaround on line 73 is preventing this false optimization with -DFIX to generate correct code in t2.s See t2.s line 252-255