From 015122d8c438b83cb069a6f42fae066cfb4749da Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Fri, 24 Feb 2017 23:32:46 +0100 Subject: [PATCH] c6x: Fix for RTL checking * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL. From-SVN: r245721 --- gcc/ChangeLog | 4 ++++ gcc/config/c6x/c6x.c | 1 + 2 files changed, 5 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8766e27727..12d4a720354 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-02-24 Segher Boessenkool + + * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL. + 2017-02-24 Segher Boessenkool * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index f841266e369..c54d4d18a58 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -3799,6 +3799,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; -- 2.30.2