http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50506
--- Comment #10 from Rafał Mużyło <galtgendo at o2 dot pl> 2011-09-25 13:51:14 UTC --- So, I ran one more test: gcc-4.6.1 -O2 -Wall -c -o fprintf-mini-bug-4.6.o fprintf-mini-bug-4.6.i -fno-align-functions -fno-align-jumps -fno-align-labels -fno-align-loops -fno-caller-saves -fno-crossjumping -fno-cse-follow-jumps -fno-devirtualize -fno-expensive-optimizations -fno-gcse -fno-inline-small-functions -fno-ipa-cp -fno-ipa-sra -fno-optimize-register-move -fno-optimize-sibling-calls -fno-peephole2 -fno-regmove -fno-reorder-blocks -fno-reorder-functions -fno-rerun-cse-after-loop -fno-schedule-insns2 -fno-strict-aliasing -fno-thread-jumps -fno-tree-builtin-call-dce -fno-tree-pre -fno-tree-switch-conversion -fno-tree-vrp This makes '-Q --help=optimizers' output equal to '-O1' case, but the testcase from comment 2 succeeds with this command. So either '-Q --help=optimizers' output is incomplete or it's actually not any specific option that triggers the change... Well, unless there's a bug in the command line parser or a problem with the specs.