diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2017-02-17 16:10:59 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2017-02-17 16:10:59 +0000 |
commit | 8b4aea7364cbb2e82e0e46810c6a99bf001ff25b (patch) | |
tree | efd7186b8e18caf7f32aab9b06745fa2367d4f51 /gcc | |
parent | 00b2a30fd4df92fe5ea879295d65c55bf1725fcb (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lra-constraints.c | 6 |
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; } |