re PR c/9530 (ICE on missing return statement)

PR c/9530
	* config/i386/i386.h (FUNCTION_OK_FOR_SIBCALL): Forbid sibcalls
	from functions that return a float to functions that don't.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r62484
This commit is contained in:
Eric Botcazou 2003-02-06 11:59:21 +01:00 committed by Eric Botcazou
parent a0571a5836
commit 123e6bf737
3 changed files with 18 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2003-02-06 Eric Botcazou <ebotcazou@libertysurf.fr>
Richard Henderson <rth@redhat.com>
PR c/9530
* config/i386/i386.h (FUNCTION_OK_FOR_SIBCALL): Forbid sibcalls
from functions that return a float to functions that don't.
2003-02-03 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the

View File

@ -1723,15 +1723,17 @@ typedef struct ix86_args {
/* If PIC, we cannot make sibling calls to global functions
because the PLT requires %ebx live.
If we are returning floats on the register stack, we cannot make
sibling calls to functions that return floats. (The stack adjust
instruction will wind up after the sibcall jump, and not be executed.) */
If we are returning floats on the 80387 register stack, we cannot
make a sibcall from a function that doesn't return a float to a
function that does or, conversely, from a function that does return
a float to a function that doesn't; the necessary stack adjustment
would not be executed. */
#define FUNCTION_OK_FOR_SIBCALL(DECL) \
((DECL) \
&& (! flag_pic || ! TREE_PUBLIC (DECL)) \
&& (! TARGET_FLOAT_RETURNS_IN_80387 \
|| ! FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \
|| FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (cfun->decl))))))
|| (FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \
== FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (cfun->decl)))))))
/* Perform any needed actions needed for a function that is receiving a
variable number of arguments.

View File

@ -1,3 +1,7 @@
2003-02-06 Eric Botcazou <ebotcazou@libertysurf.fr>
* gcc.c-torture/compile/20030206-1.c: New test.
2003-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gcc.c-torture/execute/20020227-1.x: Update specific XFAIL