From: Mike Stump Date: Thu, 19 May 1994 23:14:04 +0000 (+0000) Subject: calls.c (expand_call): Only destroy temps here, if -fshort-temps is given. X-Git-Tag: misc/cutover-egcs-0~6602 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef5057f84d43d10ff83ab4052142a27675026d89;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/calls.c b/gcc/calls.c index cc6a74a5668d..4b264f882932 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