[Bug middle-end/19616] [4.0 regression] missed tail call

steven at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Jan 25 02:42:00 GMT 2005


------- Additional Comments From steven at gcc dot gnu dot org  2005-01-25 02:42 -------
D'oh!  Of course this affects i686 too, just need to set up the stack, e.g. 
 
void bar (double); 
void foo (double a) { bar (0.0); } 
 
Without patch: 
foo: 
        pushl   %ebp 
        movl    %esp, %ebp 
        subl    $8, %esp 
        movl    $0, (%esp) 
        movl    $0, 4(%esp) 
        call    bar 
        leave 
        ret 
 
With patch: 
foo: 
        pushl   %ebp 
        movl    %esp, %ebp 
        movl    $0, 8(%ebp) 
        movl    $0, 12(%ebp) 
        leave 
        jmp     bar 
 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|x86_64-*-*                  |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19616



More information about the Gcc-bugs mailing list