The following patch doesn't pass bootstrap & regtest.  It did at some
point though and its comment hints that fixing leaks after inlining
was too interesting a problem to solve ;)

Thus patch is FYI.

Richard.

Index: tree-ssa.c
===================================================================
--- tree-ssa.c  (revision 228320)
+++ tree-ssa.c  (working copy)
@@ -693,6 +693,16 @@ verify_def (basic_block bb, basic_block
       goto err;
     }
 
+  if (bb == NULL
+      /* ???  Too many latent cases in the main opt pipeline.  But it's
+         worth to fix all cases before inlining as that reduces the
+        amount of garbage kept live.  */
+      && !cfun->after_inlining)
+    {
+      error ("removed STMT failed to release SSA name");
+      goto err;
+    }
+
   if (definition_block[SSA_NAME_VERSION (ssa_name)])
     {
       error ("SSA_NAME created in two different blocks %i and %i",

Reply via email to