https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95971
--- Comment #7 from Jan Ziak (http://atom-symbol.net) <0xe2.0x9a.0x9b at gmail dot com> --- (In reply to Martin Liška from comment #6) > All right, so it's caused by cdde1: > > Assume loop 1 to be finite: it has an exit and -ffinite-loops is on. > > -ffinite-loops > Assume that a loop with an exit will eventually take the exit and > not loop indefinitely. This allows the compiler to remove loops that > otherwise have no side-effects, not considering eventual endless looping as > such. > > This option is enabled by default at -O2 for C++ with -std=c++11 > or higher. Thank you for the explanation. Your mindset is forcing me to stop using g++ over time because of reliability concerns during application development. Sincerely Jan