Commit ef5057f8 by Mike Stump

calls.c (expand_call): Only destroy temps here, if -fshort-temps is given.

        * calls.c (expand_call): Only destroy temps here, if -fshort-temps
        is given.

From-SVN: r7341
parent cb4a4241
...@@ -702,12 +702,16 @@ expand_call (exp, target, ignore) ...@@ -702,12 +702,16 @@ expand_call (exp, target, ignore)
/* If inlining succeeded, return. */ /* If inlining succeeded, return. */
if ((HOST_WIDE_INT) temp != -1) if ((HOST_WIDE_INT) temp != -1)
{ {
/* Perform all cleanups needed for the arguments of this call if (flag_short_temps)
(i.e. destructors in C++). It is ok if these destructors {
clobber RETURN_VALUE_REG, because the only time we care about /* Perform all cleanups needed for the arguments of this
this is when TARGET is that register. But in C++, we take call (i.e. destructors in C++). It is ok if these
care to never return that register directly. */ destructors clobber RETURN_VALUE_REG, because the
only time we care about this is when TARGET is that
register. But in C++, we take care to never return
that register directly. */
expand_cleanups_to (old_cleanups); expand_cleanups_to (old_cleanups);
}
#ifdef ACCUMULATE_OUTGOING_ARGS #ifdef ACCUMULATE_OUTGOING_ARGS
/* If the outgoing argument list must be preserved, push /* If the outgoing argument list must be preserved, push
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment