Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#1306 Bug in a sibling calls optimizer

OTHER
closed
nobody
gcc (462)
fixed
Known_bugs
2013-01-29
2009-06-24
Ivan Maidanski
No

This seems to be a bug in a compiler (observed at least in v4.4.0, v4.2.1, v3.4.5).

Compiler output for the test.c compiled with -c -O1 -foptimize-sibling-calls (or -O2) :

test.c: In function 'f':
test.c:11: error: unable to find a register to spill in class 'CREG'
test.c:11: error: this is the insn:
(call_insn/j 14 13 15 2 test.c:10 (set (reg:SI 0 ax)
(call (mem:QI (reg/f:SI 4 si [orig:59 D.1246 ] [59]) [0 S1 A8])
(const_int 0 [0x0]))) 681 {*sibcall_value_1} (expr_list:REG_DEAD (reg/f:SI 4 si [orig:59 D.1246 ] [59])
(expr_list:REG_DEAD (reg:SI 2 cx)
(expr_list:REG_DEAD (reg:SI 1 dx)
(nil))))
(expr_list:REG_DEP_TRUE (use (reg:SI 2 cx))
(expr_list:REG_DEP_TRUE (use (reg:SI 1 dx))
(nil))))
test.c:11: confused by earlier errors, bailing out

Discussion

  • Ivan Maidanski
    Ivan Maidanski
    2009-06-24

    test case (compilation failure)

     
    Attachments
  • FX
    FX
    2009-07-14

    This GCC bug was fixed for trunk (4.5) and 4.4 branch.

     
  • Earnie Boyd
    Earnie Boyd
    2012-06-14

    Open a new issue if you still have problems.

     
  • Earnie Boyd
    Earnie Boyd
    2012-06-14

    • status: open --> closed-out-of-date
     
  • Earnie Boyd
    Earnie Boyd
    2013-01-29

    • status: closed-out-of-date --> closed
    • resolution: --> fixed
    • category: --> Known_bugs
    • milestone: --> OTHER