------- Comment #10 from steven at gcc dot gnu dot org  2006-09-10 11:16 -------
I've decided to go with LABEL_PRESERVE_P after all...

Index: builtins.c
===================================================================
--- builtins.c  (revision 116785)
+++ builtins.c  (working copy)
@@ -760,6 +760,12 @@ expand_builtin_setjmp (tree arglist, rtx

   emit_label (next_lab);

+  /* Because setjmp and longjmp are not represented in the CFG, a cfgcleanup
+     may find that the basic block starting with NEXT_LAB is unreachable.
+     The whole block, along with NEXT_LAB, would be removed.  Make sure that
+     never happens.  */
+  LABEL_PRESERVE_P (next_lab) = 1;
+
   expand_builtin_setjmp_receiver (next_lab);

   /* Set TARGET to one.  */


-- 


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

Reply via email to