If IGNORE is nonzero, then we ignore the value of the function call. */
rtx
-expand_call (exp, target, ignore, modifier)
+expand_call (exp, target, ignore)
tree exp;
rtx target;
int ignore;
- enum expand_modifier modifier;
{
/* List of actual parameters. */
tree actparms = TREE_OPERAND (exp, 1);
exp_rtl = SAVE_EXPR_RTL (exp);
break;
+ case BIND_EXPR:
+ /* The only operand we look at is operand 1. The rest aren't
+ part of the expression. */
+ return safe_from_p (x, TREE_OPERAND (exp, 1));
+
case METHOD_CALL_EXPR:
/* This takes a rtx argument, but shouldn't appear here. */
abort ();
just return the result we got. */
if (CALL_EXPR_RTL (exp) != 0)
return CALL_EXPR_RTL (exp);
- return expand_call (exp, target, ignore, modifier);
+ return expand_call (exp, target, ignore);
case NON_LVALUE_EXPR:
case NOP_EXPR:
/* The argument was not in the domain; do this via library call.
Pop the arguments right away in case the call gets deleted. */
NO_DEFER_POP;
- expand_call (exp, target, 0, 0);
+ expand_call (exp, target, 0);
OK_DEFER_POP;
/* Branch around open coded version */
if (TREE_CODE (TREE_OPERAND (exp, 0)) != ADDR_EXPR
|| TREE_CODE (TREE_OPERAND (TREE_OPERAND (exp, 0), 0)) != FUNCTION_DECL
|| ! DECL_BUILT_IN (TREE_OPERAND (TREE_OPERAND (exp, 0), 0)))
- CALL_EXPR_RTL (exp) = expand_call (exp, 0, 0, 0);
+ CALL_EXPR_RTL (exp) = expand_call (exp, 0, 0);
return;
case COMPOUND_EXPR: