re PR tree-optimization/69013 (gfortran-5.3.0 ICE in prune_uninit_phi_opnds_in_unreal...
authorRichard Biener <rguenther@suse.de>
Wed, 13 Jan 2016 12:15:01 +0000 (12:15 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 13 Jan 2016 12:15:01 +0000 (12:15 +0000)
2016-01-13  Richard Biener  <rguenther@suse.de>

PR tree-optimization/69013
* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
Exchange assert for a test.

From-SVN: r232320

gcc/ChangeLog
gcc/tree-ssa-uninit.c

index ab61dff4b099275040ccdd034cd957adf6d70963..5be7ebf80d900d30bdb52c27b0db386677b471f8 100644 (file)
@@ -1,3 +1,9 @@
+2016-01-13  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/69013
+       * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
+       Exchange assert for a test.
+
 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
 
        PR target/69247
index d3a58446db41c7bc15792d59bacd280227ed1e67..ea3ceb8f101bbe2882a093f6d204ac6dc3af0830 100644 (file)
@@ -1093,19 +1093,21 @@ prune_uninit_phi_opnds_in_unrealizable_paths (gphi *phi,
              edge opnd_edge;
              unsigned uninit_opnds2
                  = compute_uninit_opnds_pos (opnd_def_phi);
-             pred_chain_union def_preds = vNULL;
-             bool ok;
-             gcc_assert (!MASK_EMPTY (uninit_opnds2));
-             opnd_edge = gimple_phi_arg_edge (phi, i);
-             ok = is_use_properly_guarded (phi,
-                                           opnd_edge->src,
-                                           opnd_def_phi,
-                                           uninit_opnds2,
-                                           &def_preds,
-                                           visited_phis);
-             destroy_predicate_vecs (&def_preds);
-             if (!ok)
-               return false;
+             if (!MASK_EMPTY (uninit_opnds2))
+               {
+                 pred_chain_union def_preds = vNULL;
+                 bool ok;
+                 opnd_edge = gimple_phi_arg_edge (phi, i);
+                 ok = is_use_properly_guarded (phi,
+                                               opnd_edge->src,
+                                               opnd_def_phi,
+                                               uninit_opnds2,
+                                               &def_preds,
+                                               visited_phis);
+                 destroy_predicate_vecs (&def_preds);
+                 if (!ok)
+                   return false;
+               }
            }
          else
            return false;