summaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-04-15 00:42:14 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-04-15 00:42:14 +0000
commit48aa0bc81ab90615fbe726cbeeb1a63f0fbc81ef (patch)
treedb23d99bf5b485b1dc4d8d2f1257eb49dc208d2c /gcc/combine.c
parentabad63b517c57f97acc1294ca091313111007e6a (diff)
downloadgcc-48aa0bc81ab90615fbe726cbeeb1a63f0fbc81ef.tar.gz
(try_combine): When substituting in output of I2, ensure dest isn't
clobbered in I2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11773 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 9efa2ab3d91..4d0ac4cbc12 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -1307,7 +1307,8 @@ try_combine (i3, i2, i1)
The problem can also happen if the dest of I3 is a memory ref,
if another dest in I2 is an indirect memory ref. */
for (i = 0; i < XVECLEN (p2, 0); i++)
- if (GET_CODE (XVECEXP (p2, 0, i)) == SET
+ if ((GET_CODE (XVECEXP (p2, 0, i)) == SET
+ || GET_CODE (XVECEXP (p2, 0, i)) == CLOBBER)
&& reg_overlap_mentioned_p (SET_DEST (PATTERN (i3)),
SET_DEST (XVECEXP (p2, 0, i))))
break;