https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69246

--- Comment #11 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 
---
Author: rsandifo
Date: Fri Jan 15 14:41:10 2016
New Revision: 232428

URL: https://gcc.gnu.org/viewcvs?rev=232428&root=gcc&view=rev
Log:
PR 69246: Invalid REG_ARGS_SIZE for sibcalls

The problem in this PR was that we were treating a sibcall as popping
arguments, leading to a negative REG_ARGS_SIZE.

It doesn't really make sense to treat sibcalls as popping since
(a) they're deallocating the caller's stack, not ours, and
(b) there are no optabs for popping sibcalls (any more).

Tested on x86_64-linux-gnu.

gcc/
        PR middle-end/69246
        * calls.c (emit_call_1): Force n_popped to zero for sibcalls.

gcc/testsuite/
        PR middle-end/69246
        * gcc.target/i386/pr69246.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr69246.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/calls.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to