Один из вопросов, который я задал некоторое время назад , имел неопределенное поведение, поэтому оптимизация компилятора фактически приводила к сбою программы.
Но если в вашем коде нет неопределенного поведения, то есть ли причина не использовать оптимизацию компилятора? Я понимаю, что иногда для целей отладки может не понадобиться оптимизированный код (пожалуйста, поправьте меня, если я ошибаюсь). Кроме этого, в производственном коде, почему бы всегда не использовать оптимизацию компилятора?
Кроме того, есть ли причина использовать, скажем, -O
вместо -O2
или -O3
?