2017-02-21  Segher Boessenkool  <seg...@kernel.crashing.org>

        * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.

---
 gcc/config/c6x/c6x.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index 84bfdfa..42b773b 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -3800,6 +3800,7 @@ predicate_insn (rtx_insn *insn, rtx cond, bool doit)
     {
       if (doit)
        {
+         cond = copy_rtx (cond);
          rtx newpat = gen_rtx_COND_EXEC (VOIDmode, cond, PATTERN (insn));
          PATTERN (insn) = newpat;
          INSN_CODE (insn) = -1;
-- 
1.9.3

Reply via email to