aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2017-02-17 16:10:59 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2017-02-17 16:10:59 +0000
commit8b4aea7364cbb2e82e0e46810c6a99bf001ff25b (patch)
treeefd7186b8e18caf7f32aab9b06745fa2367d4f51 /gcc
parent00b2a30fd4df92fe5ea879295d65c55bf1725fcb (diff)
downloadgcc-8b4aea7364cbb2e82e0e46810c6a99bf001ff25b.zip
gcc-8b4aea7364cbb2e82e0e46810c6a99bf001ff25b.tar.gz
gcc-8b4aea7364cbb2e82e0e46810c6a99bf001ff25b.tar.bz2
re PR rtl-optimization/79541 (lra reads uninitialized memory (with invalid input))
2017-02-17 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/79541 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn instead of transforming it into USE. From-SVN: r245536
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lra-constraints.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0339ac9..d4a0c0d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/79541
+ * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
+ instead of transforming it into USE.
+
2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 585ca841..0098a75 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -3773,9 +3773,9 @@ curr_insn_transform (bool check_only_p)
fatal_insn ("unable to generate reloads for:", curr_insn);
error_for_asm (curr_insn,
"inconsistent operand constraints in an %<asm%>");
- /* Avoid further trouble with this insn. */
- PATTERN (curr_insn) = gen_rtx_USE (VOIDmode, const0_rtx);
- lra_invalidate_insn_data (curr_insn);
+ /* Avoid further trouble with this insn. Don't generate use
+ pattern here as we could use the insn SP offset. */
+ lra_set_insn_deleted (curr_insn);
return true;
}