re PR tree-optimization/22484 (ICE: verify_stmts failed with -O3)
authorAndrew Pinski <pinskia@physics.uc.edu>
Mon, 25 Jul 2005 20:27:56 +0000 (20:27 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Mon, 25 Jul 2005 20:27:56 +0000 (13:27 -0700)
2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/22484
        * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
        after fold.
        * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/22484
        * testsuite/g++.dg/opt/loop2.C: New test.

From-SVN: r102369

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/tree-ssa-ccp.c
gcc/tree-ssa-propagate.c

index 22171428681bba17779dc70bae748653554e7e03..a31a4a79866c8dcc36f7e6e9aa39e8c61ef1bdf9 100644 (file)
@@ -1,3 +1,10 @@
+2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/22484
+       * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
+       after fold.
+       * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.
+
 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
 
        * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
index bcdb54cf70e809c9390951d3459dcad0314f0cbb..f82d239e2252f5c0816c96250a273fe08e6d63ce 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/22484
+       * testsuite/g++.dg/opt/loop2.C: New test.
+
 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
 
        * gcc.dg/tree-ssa/reassoc-3.c: New test.
index 95a2fa1386465b552c6d90f43218963951c640a3..829bba94132be098130a83943fb48b6490ae3f99 100644 (file)
@@ -2335,6 +2335,7 @@ fold_stmt_inplace (tree stmt)
     return changed;
 
   new_rhs = fold (rhs);
+  STRIP_USELESS_TYPE_CONVERSION (new_rhs);
   if (new_rhs == rhs)
     return changed;
 
index 07b13e3fa5fc912bd36d70c76c9ff2576f1622fe..ced23dfb5b6579ddaaf76ce1e88d9373016e2fa3 100644 (file)
@@ -604,6 +604,8 @@ set_rhs (tree *stmt_p, tree expr)
       break;
 
     case COND_EXPR:
+      if (!is_gimple_condexpr (expr))
+        return false;
       COND_EXPR_COND (stmt) = expr;
       break;
     case SWITCH_EXPR: