[Bug target/80706] [7/8 Regression] peephole2 uses uninitialized stack variables on i686

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu May 11 08:05:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80706

--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> ---
--cut here--
diff --git a/gcc/config/i386/sync.md b/gcc/config/i386/sync.md
index 20d46fe..d509be5 100644
--- a/gcc/config/i386/sync.md
+++ b/gcc/config/i386/sync.md
@@ -222,7 +222,8 @@
   "!TARGET_64BIT
    && peep2_reg_dead_p (2, operands[0])
    && rtx_equal_p (operands[4], adjust_address_nv (operands[2], DFmode, 0))"
-  [(set (match_dup 3) (match_dup 5))]
+  [(set (match_dup 3) (match_dup 5))
+   (set (match_dup 4) (match_dup 3))]
   "operands[5] = gen_lowpart (DFmode, operands[1]);")

 (define_peephole2
@@ -235,7 +236,8 @@
   "!TARGET_64BIT
    && peep2_reg_dead_p (2, operands[0])
    && rtx_equal_p (operands[4], adjust_address_nv (operands[2], DFmode, 0))"
-  [(set (match_dup 3) (match_dup 5))]
+  [(set (match_dup 3) (match_dup 5))
+   (set (match_dup 4) (match_dup 3))]
   "operands[5] = gen_lowpart (DFmode, operands[1]);")

 (define_expand "atomic_store<mode>"
--cut here--

Jakub, does the above patch fix the failure?


More information about the Gcc-bugs mailing list