raeburn@ATHENA.MIT.EDU (Ken Raeburn) (01/02/89)
The following file is causing gcc to abort when compiled with -O -fcombine-regs -fstrength-reduce. (And with just -O.) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ struct exec { long a_magic; unsigned long a_text; unsigned long a_data; unsigned long a_bss; unsigned long a_syms; unsigned long a_entry; unsigned long a_trsize; unsigned long a_drsize; }; extern unsigned reg_11, reg_10, reg_9; extern struct exec x; mumble(aio) int aio; { asm ("movl %0,r11 ; movl %1,r10 ; movl %2,r9 ; calls $0,%3" : : "g" (reg_11), "g" (reg_10), "g" (reg_9), "g" (x.a_entry) : "r11", "r10", "r9"); return; } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The core file I'm getting is confusing gdb 3.0 a bit; the stack trace it gives me reports abort() twice: (gdb) bt #0 0x519b4 in kill (2823, 4) #1 0x51999 in abort () #2 0x51999 in abort () #3 0x4ae05 in insn_extract (insn=(rtx) 0x5eabc) (insn-extract.c line 1847) #4 0x3ad25 in regclass (f=(rtx) 0x5e85c, nregs=18) (regclass.c line 360) #5 0x10b31 in rest_of_compilation (decl=(tree) 0x67088) (toplev.c line 1366) #6 0xa7d5 in finish_function () (c-decl.c line 3430) #7 0x3762 in yyparse () (c-parse.y line 244) .... Versions 2.5 (which we still seem to be running by default) and 2.8 only report that frame once. -- Ken