aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-04-18 01:03:55 +0000
committerRichard Stallman <rms@gnu.org>1992-04-18 01:03:55 +0000
commit8129842c7b98ec8303333ae1ad23db6b28d4c2e8 (patch)
tree60a663743b4551bd27c4246998831bbd67c09eab
parent41e8363acf2a026687701e26310894a76866d047 (diff)
downloadgcc-8129842c7b98ec8303333ae1ad23db6b28d4c2e8.zip
gcc-8129842c7b98ec8303333ae1ad23db6b28d4c2e8.tar.gz
gcc-8129842c7b98ec8303333ae1ad23db6b28d4c2e8.tar.bz2
*** empty log message ***
From-SVN: r772
-rw-r--r--gcc/calls.c3
-rw-r--r--gcc/expr.c11
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index e57531d..963da43 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -358,11 +358,10 @@ emit_call_1 (funexp, funtype, stack_size, struct_value_size, next_arg_reg,
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);
diff --git a/gcc/expr.c b/gcc/expr.c
index 8d2a424..bd4d3b6 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2791,6 +2791,11 @@ safe_from_p (x, exp)
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 ();
@@ -3503,7 +3508,7 @@ expand_expr (exp, target, tmode, modifier)
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:
@@ -4799,7 +4804,7 @@ expand_builtin (exp, target, subtarget, mode, ignore)
/* 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 */
@@ -5536,7 +5541,7 @@ preexpand_calls (exp)
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: