re PR c/87953 (asan: stack-buffer-overflow in vectorizable_reduction)
authorRichard Biener <rguenther@suse.de>
Fri, 9 Nov 2018 12:29:51 +0000 (12:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 9 Nov 2018 12:29:51 +0000 (12:29 +0000)
2018-11-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87953
* tree-vect-loop.c (vectorizable_reduction): For analysis
always pass ops[0] to vectorizable_condition.

From-SVN: r265964

gcc/ChangeLog
gcc/tree-vect-loop.c

index 07993c5..693ac97 100644 (file)
@@ -1,3 +1,9 @@
+2018-11-09  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/87953
+       * tree-vect-loop.c (vectorizable_reduction): For analysis
+       always pass ops[0] to vectorizable_condition.
+
 2018-11-09  Stafford Horne  <shorne@gmail.com>
            Richard Henderson  <rth@twiddle.net>
            Joel Sherrill  <joel@rtems.org>
index 7338ca5..0dc84f1 100644 (file)
@@ -6485,9 +6485,10 @@ vectorizable_reduction (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi,
   if (code == COND_EXPR)
     {
       /* Only call during the analysis stage, otherwise we'll lose
-        STMT_VINFO_TYPE.  */
+        STMT_VINFO_TYPE.  We'll pass ops[0] as reduc_op, it's only
+        used as a flag during analysis.  */
       if (!vec_stmt && !vectorizable_condition (stmt_info, gsi, NULL,
-                                               ops[reduc_index], 0, NULL,
+                                               ops[0], 0, NULL,
                                                cost_vec))
         {
           if (dump_enabled_p ())