]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
authorKazu Hirata <kazu@cs.umass.edu>
Thu, 4 Nov 2004 22:07:39 +0000 (22:07 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Thu, 4 Nov 2004 22:07:39 +0000 (22:07 +0000)
* tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
* tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
with VAL being NULL.

From-SVN: r90083

gcc/ChangeLog
gcc/tree-cfg.c
gcc/tree-ssa-ccp.c

index f7565153e241ecad8c6d6d5f805bc8e986457c1c..b110b8ef50b875b96b08241a280d83b696b9c7d4 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-cfg.c (find_taken_edge): Reject VAL begin NULL.
+       * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge
+       with VAL being NULL.
+
 2004-11-04  Kazu Hirata  <kazu@cs.umass.edu>
 
        * cfghooks.c (delete_basic_block): Remove code to truncate
index 3c8a505815fd5cfae93775603dc66a832f0553e5..67b96a5737dee4798676a2ddfad88f8921fc82f0 100644 (file)
@@ -1954,15 +1954,16 @@ find_taken_edge (basic_block bb, tree val)
 
   gcc_assert (stmt);
   gcc_assert (is_ctrl_stmt (stmt));
+  gcc_assert (val);
 
   /* If VAL is a predicate of the form N RELOP N, where N is an
      SSA_NAME, we can usually determine its truth value.  */
-  if (val && COMPARISON_CLASS_P (val))
+  if (COMPARISON_CLASS_P (val))
     val = fold (val);
 
   /* If VAL is not a constant, we can't determine which edge might
      be taken.  */
-  if (val == NULL || !really_constant_p (val))
+  if (!really_constant_p (val))
     return NULL;
 
   if (TREE_CODE (stmt) == COND_EXPR)
index b97424f02e26968b9bf55138433e0ea33a9b2485..42094805b41bb2b9639a30726e2690ff5b143a9e 100644 (file)
@@ -1123,7 +1123,7 @@ visit_cond_stmt (tree stmt, edge *taken_edge_p)
      to the worklist.  If no single edge can be determined statically,
      return SSA_PROP_VARYING to feed all the outgoing edges to the
      propagation engine.  */
-  *taken_edge_p = find_taken_edge (block, val.const_val);
+  *taken_edge_p = val.const_val ? find_taken_edge (block, val.const_val) : 0;
   if (*taken_edge_p)
     return SSA_PROP_INTERESTING;
   else