Blob Blame History Raw
--- gcc/tree-ssa-ccp.c.jj	2013-07-10 14:23:48.649363309 +1000
+++ gcc/tree-ssa-ccp.c	2013-07-10 14:25:46.767447105 +1000
@@ -2877,6 +2877,12 @@ fold_stmt (gimple_stmt_iterator *gsi)
   /* Fold the individual operands.
      For example, fold instances of *&VAR into VAR, etc.  */
   res = walk_gimple_op (stmt, fold_stmt_r, &wi);
+  if (res && is_gimple_debug (stmt))
+    {
+      gimple_debug_bind_reset_value (stmt);
+      changed = true;
+      res = NULL_TREE;
+    }
   gcc_assert (!res);
 
   /* Fold the main computation performed by the statement.  */
@@ -2941,6 +2947,12 @@ fold_stmt_inplace (gimple stmt)
      a call to _builtin_trap.  This functionality is currently
      disabled, as noted in a FIXME, and cannot be supported here.  */
   res = walk_gimple_op (stmt, fold_stmt_r, &wi);
+  if (res && is_gimple_debug (stmt))
+    {
+      gimple_debug_bind_reset_value (stmt);
+      changed = true;
+      res = NULL_TREE;
+    }
   gcc_assert (!res);
 
   /* Fold the main computation performed by the statement.  */