aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2018-12-14 09:29:34 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2018-12-14 09:29:34 +0100
commit6c4ff3c98c19594ed17f3ad8a3a25a5939e16b30 (patch)
tree773cad404720764a2cf0cfb4e98b28888c8afc86
parentb30bde1063f9b0399d1d06fdc08aec12bb025843 (diff)
downloadgcc-6c4ff3c98c19594ed17f3ad8a3a25a5939e16b30.zip
gcc-6c4ff3c98c19594ed17f3ad8a3a25a5939e16b30.tar.gz
gcc-6c4ff3c98c19594ed17f3ad8a3a25a5939e16b30.tar.bz2
match_asm_constraints: Use copy_rtx where needed (PR88001)
The new insn here (temporarily) illegally shares RTL. This fixes it. PR rtl-optimization/88001 * function.c (match_asm_constraints_1): Don't invalidly share RTL. From-SVN: r267122
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/function.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 39521bc..6222a3f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-12-14 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR rtl-optimization/88001
+ * function.c (match_asm_constraints_1): Don't invalidly share RTL.
+
2018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com>
* auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even
diff --git a/gcc/function.c b/gcc/function.c
index 69523c1..60e96f3 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -6529,7 +6529,7 @@ match_asm_constraints_1 (rtx_insn *insn, rtx *p_sets, int noutputs)
output_matched[match] = true;
start_sequence ();
- emit_move_insn (output, input);
+ emit_move_insn (output, copy_rtx (input));
insns = get_insns ();
end_sequence ();
emit_insn_before (insns, insn);