I've experienced an internal compiler error attempting to compile netpbm-10.35.75 under -Os optimization. I've reduced the problem file (pamscale.c) down to a minimal example:
Script started on Mon Jun 28 10:15:13 2010 bash-4.1$ cat break-gcc.i extern int bar(void); int foo(float f, int i) { return f * 2 < i || bar(); } bash-4.1$ gcc -c -Os -ffast-math break-gcc.i break-gcc.i: In function 'foo': break-gcc.i:6:1: error: unrecognizable insn: (jump_insn 39 41 12 2 break-gcc.i:5 (set (pc) (if_then_else (lt (reg:CCFP 17 flags) (const_int 0 [0x0])) (label_ref:SI 18) (pc))) -1 (expr_list:REG_BR_PROB (const_int 6102 [0x17d6]) (nil)) -> 18) break-gcc.i:6:1: internal compiler error: in extract_insn, at recog.c:2103 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. bash-4.1$ exit exit Script done on Mon Jun 28 10:15:35 2010 -Os and -ffast-math are both essential to trigger the bug. -- Summary: Internal error (case derived from netpbm) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: michael at talamasca dot ocis dot net GCC build triplet: i386-pc-linux-uclibc GCC host triplet: i386-pc-linux-uclibc GCC target triplet: i386-pc-linux-uclibc http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44700