This code reduced from libiberty/regex.c typedef unsigned char UCHAR;
void insert_op2 (UCHAR *loc, UCHAR *end) { UCHAR *pfrom = end; UCHAR *pto = end + 1; while (pfrom != loc) *--pto = *--pfrom; } jbook2:~ jay$ alpha-dec-vms-gcc -c re.c jbook2:~ jay$ alpha-dec-vms-gcc -c -O2 re.c re.c: In function 'insert_op2': re.c:10:1: error: unrecognizable insn: (insn 58 57 59 5 re.c:9 (set (reg:DI 120) (plus:SI (subreg/s:SI (reg/v/f:DI 108 [ pfrom ]) 0) (const_int 1 [0x1]))) -1 (nil)) re.c:10: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. -- Summary: alpha libiberty/regex.c fails to compile with -O2 without -mbwx (internal compiler error) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jay dot krell at cornell dot edu GCC build triplet: Mac/x86 GCC host triplet: alpha-dec-vms GCC target triplet: alpha-dec-vms http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43973