This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
RTL checking for libobjc failed
- To: gcc-bugs at gcc dot gnu dot org
- Subject: RTL checking for libobjc failed
- From: "Martin v. Loewis" <martin at loewis dot home dot cs dot tu-berlin dot de>
- Date: Sun, 9 Jan 2000 10:42:11 +0100
With the current CVS, on i586-pc-linux-gnu, I get the error
/usr/src/egcs/check/gcc/xgcc -B/usr/src/egcs/check/gcc/ -B/usr/local/i586-pc-linux-gnu/bin/ -c -o sendmsg.o -I. -I../../../libobjc -g -O2 -DIN_GCC -I../../../libobjc/objc -I../../../libobjc/../gcc -I../../../libobjc/../gcc/config -I../../gcc -I../../../libobjc/../include ../../../libobjc/sendmsg.c
sendmsg.c: In function `objc_msg_sendv':
sendmsg.c:204: RTL check: expected code `set' or `clobber', have `use'
sendmsg.c:204: Internal compiler error in `mark_referenced_resources', at resource.c:354
I've reduced the source to the fragment attached below.
(gdb) bt
#0 rtl_check_failed_code2 (r=0x4011d4c0, code1=3221222040, code2=NIL,
file=0x81d7533 "\203Ä éU\001", line=-1073745144, func=0xbffff310 "")
at ../../gcc/rtl.c:1191
#1 0x83b4a9d in mark_referenced_resources (x=0x4011d4c0, res=0xbffff298,
include_delayed_effects=1) at ../../gcc/resource.c:354
#2 0x83b5d12 in find_dead_or_set_registers (target=0x40121220,
res=0xbffff360, jump_target=0xbffff304, jump_count=0, set={
memory = 1 '\001', unch_memory = 0 '\000', volatil = 0 '\000',
cc = 1 '\001', regs = 524183}, needed={memory = 1 '\001',
unch_memory = 0 '\000', volatil = 0 '\000', cc = 0 '\000', regs = 217})
at ../../gcc/resource.c:562
#3 0x83b81a0 in mark_target_live_regs (insns=0x4011e5e0, target=0x40121220,
res=0xbffff360) at ../../gcc/resource.c:1062
#4 0x83b86dd in find_free_register (current_insn=0x40121220, last_insn=0x0,
class_str=0x842387e "r", mode=6, reg_set=0xbffff3b4)
at ../../gcc/resource.c:1263
#5 0x8353249 in gen_peephole2_539 (curr_insn=0x401211e0, operands=0x8469640)
at insn-emit.c:8406
#6 0x832f3ed in peephole2_insns (x0=0x40120660, insn=0x401211e0,
_plast_insn=0xbffff434) at insn-recog.c:22017
#7 0x82ace7a in peephole2_optimize (dump_file=0x0) at ../../gcc/recog.c:2746
#8 0x804dca8 in rest_of_compilation (decl=0x4011f400)
at ../../gcc/toplev.c:3468
#9 0x83da3a5 in finish_function (nested=0) at ../../gcc/c-decl.c:6718
#10 0x83c2c8d in yyparse () at c-parse.y:314
#11 0x804baef in compile_file (name=0x40117da0 "sendmsg.i")
at ../../gcc/toplev.c:2379
#12 0x804fc0b in main (argc=4, argv=0xbffffa74) at ../../gcc/toplev.c:4794
(gdb) l
349 && rtx_equal_p (SET_DEST (slot_pat),
350 SET_DEST (XEXP (link, 0))))
351 break;
352 }
353 if (i >= seq_size)
354 mark_referenced_resources (SET_DEST (XEXP (link, 0)),
355 res, 0);
356 }
357 }
358 }
(gdb) p debug_rtx(link)
(expr_list (use (reg:SI 2 ecx))
(expr_list (use (reg:SI 1 edx))
(expr_list (use (reg:SI 0 eax))
(nil))))
$3 = void
Please let me know if you need further information.
Regards,
Martin
sendmsg.i