diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-03-25 05:43:12 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-03-25 05:43:12 +0000 |
commit | adf1204791089a3d2252a147bdc44ddcc51d0895 (patch) | |
tree | 571dca1e99150cb7482b6477315fec1e2e7b091d /gcc/function.c | |
parent | 5200e74e8e366217fd4b1ec0ed50857834b60ef2 (diff) | |
download | ppe42-gcc-adf1204791089a3d2252a147bdc44ddcc51d0895.tar.gz ppe42-gcc-adf1204791089a3d2252a147bdc44ddcc51d0895.zip |
(fixup_var_refs_insns): Don't delete an insn copying
var to itself, if it's the end of a libcall group.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3873 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c index 473fcf30171..b3a599a61a4 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 |