------- Comment #3 from fxcoudert at gcc dot gnu dot org 2009-05-13 20:04 ------- Simpler testcase, confirmed on native i386-pc-mingw32 (trunk, SVN rev. 147441):
$ cat a.c void __attribute__((dllimport,fastcall)) h(int); void f() { h(2); h(1); } $ gcc -S -O1 a.c -foptimize-sibling-calls a.c: In function 'f': a.c:7: error: unable to find a register to spill in class 'CREG' a.c:7: error: this is the insn: (call_insn/j 10 8 11 2 a.c:6 (call (mem:QI (reg/f:SI 3 bx [58]) [0 S1 A8]) (const_int 0 [0x0])) 468 {*sibcall_1} (expr_list:REG_DEAD (reg/f:SI 3 bx [58]) (expr_list:REG_DEAD (reg:SI 2 cx) (nil))) (expr_list:REG_DEP_TRUE (use (reg:SI 2 cx)) (nil))) a.c:7: internal compiler error: in spill_failure, at reload1.c:2094 -- fxcoudert at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC build triplet|i686-pc-linux-gnu | GCC host triplet|i686-pc-linux-gnu | Last reconfirmed|0000-00-00 00:00:00 |2009-05-13 20:04:31 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38900