aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-03-25 05:43:12 +0000
committerRichard Stallman <rms@gnu.org>1993-03-25 05:43:12 +0000
commitd1e37dc7e8bee5ba20eb7c04148a9e6cf379d946 (patch)
tree571dca1e99150cb7482b6477315fec1e2e7b091d /gcc
parent3615587a37d3a302ab9ac8d3ac638bdc9eb24e71 (diff)
downloadgcc-d1e37dc7e8bee5ba20eb7c04148a9e6cf379d946.zip
gcc-d1e37dc7e8bee5ba20eb7c04148a9e6cf379d946.tar.gz
gcc-d1e37dc7e8bee5ba20eb7c04148a9e6cf379d946.tar.bz2
(fixup_var_refs_insns): Don't delete an insn copying
var to itself, if it's the end of a libcall group. From-SVN: r3873
Diffstat (limited to 'gcc')
-rw-r--r--gcc/function.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 473fcf3..b3a599a 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1012,6 +1012,9 @@ fixup_var_refs_insns (var, promoted_mode, unsignedp, insn, toplevel)
if (toplevel
&& GET_CODE (PATTERN (insn)) == SET
&& SET_DEST (PATTERN (insn)) == var
+ /* If this represents the result of an insn group,
+ don't delete the insn. */
+ && find_reg_note (insn, REG_RETVAL, NULL_RTX) == 0
&& rtx_equal_p (SET_SRC (PATTERN (insn)), var))
{
/* In unoptimized compilation, we shouldn't call delete_insn