From ef5057f84d43d10ff83ab4052142a27675026d89 Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Thu, 19 May 1994 23:14:04 +0000 Subject: [PATCH] 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 --- gcc/calls.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gcc/calls.c b/gcc/calls.c index cc6a74a5668..4b264f88293 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -702,12 +702,16 @@ expand_call (exp, target, ignore) /* If inlining succeeded, return. */ if ((HOST_WIDE_INT) temp != -1) { - /* Perform all cleanups needed for the arguments of this call - (i.e. destructors in C++). It is ok if these 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); + if (flag_short_temps) + { + /* Perform all cleanups needed for the arguments of this + call (i.e. destructors in C++). It is ok if these + 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); + } #ifdef ACCUMULATE_OUTGOING_ARGS /* If the outgoing argument list must be preserved, push -- 2.30.2