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