Avoid &LOOP_VINFO_MASKS for bb vectorisation (PR 86618)
authorRichard Sandiford <richard.sandiford@arm.com>
Tue, 24 Jul 2018 18:08:19 +0000 (18:08 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 24 Jul 2018 18:08:19 +0000 (18:08 +0000)
r262589 introduced another instance of the bug fixed in r258131.

2018-07-23  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR tree-optimization/86618
* tree-vect-stmts.c (vectorizable_call): Don't take the address
of LOOP_VINFO_MASKS (loop_vinfo) when loop_vinfo is null.

From-SVN: r262951

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

index 02991c17bc5f2d4b540173ed85897af72ec9b4f2..96c7de91950a0974d80bc86647702f28e396aaff 100644 (file)
@@ -1,3 +1,9 @@
+2018-07-24  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR tree-optimization/86618
+       * tree-vect-stmts.c (vectorizable_call): Don't take the address
+       of LOOP_VINFO_MASKS (loop_vinfo) when loop_vinfo is null.
+
 2018-07-24  David Malcolm  <dmalcolm@redhat.com>
 
        PR tree-optimization/86636
index 1c847ae016d1de09f5d8719ab689a9c0414ba822..f420a427e5868dbc3c4682a503bff99d029b8ee4 100644 (file)
@@ -3337,7 +3337,7 @@ vectorizable_call (gimple *gs, gimple_stmt_iterator *gsi, gimple **vec_stmt,
      needs to be generated.  */
   gcc_assert (ncopies >= 1);
 
-  vec_loop_masks *masks = &LOOP_VINFO_MASKS (loop_vinfo);
+  vec_loop_masks *masks = (loop_vinfo ? &LOOP_VINFO_MASKS (loop_vinfo) : NULL);
   if (!vec_stmt) /* transformation not required.  */
     {
       STMT_VINFO_TYPE (stmt_info) = call_vec_info_type;