------- Comment #6 from pinskia at gcc dot gnu dot org  2006-02-05 03:55 -------
The patch I am testing right now:
Index: tree-cfg.c
===================================================================
--- tree-cfg.c  (revision 110536)
+++ tree-cfg.c  (working copy)
@@ -1108,7 +1108,8 @@ cleanup_dead_labels (void)
   for_each_eh_region (update_eh_label);

   /* Finally, purge dead labels.  All user-defined labels and labels that
-     can be the target of non-local gotos are preserved.  */
+     can be the target of non-local gotos and labels which have their
+     address taken are preserved.  */
   FOR_EACH_BB (bb)
     {
       block_stmt_iterator i;
@@ -1128,7 +1129,8 @@ cleanup_dead_labels (void)

          if (label == label_for_this_bb
              || ! DECL_ARTIFICIAL (label)
-             || DECL_NONLOCAL (label))
+             || DECL_NONLOCAL (label)
+             || FORCED_LABEL (label))
            bsi_next (&i);
          else
            bsi_remove (&i, true);


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25251

Reply via email to