]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
flow.c (find_basic_blocks): Mark calls as potentially jumping to the EH labels.
authorJason Merrill <jason@yorick.cygnus.com>
Mon, 29 Sep 1997 16:49:57 +0000 (16:49 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 29 Sep 1997 16:49:57 +0000 (10:49 -0600)
        * flow.c (find_basic_blocks): Mark calls as potentially jumping
        to the EH labels.

From-SVN: r15792

gcc/ChangeLog
gcc/flow.c

index 6e0c9e17ac5c7491244b3159b30f995693bb9d0b..aec13a2384fe833c2ada513915ae84de8ab3958f 100644 (file)
@@ -1,3 +1,8 @@
+Mon Sep 29 10:51:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * flow.c (find_basic_blocks): Mark calls as potentially jumping
+       to the EH labels.
+
 Mon Sep 29 09:58:06 1997  Jeffrey A Law  (law@cygnus.com)
 
        * configure.in: Substitute for "install" too.
index f1774dc33293822173f65b7a792adca5a17c9c18..75384576cb5f5d724bd7ff01991051a91e0faed9 100644 (file)
@@ -465,8 +465,9 @@ find_basic_blocks (f, nonlocal_label_list)
     if (! LABEL_REF_NONLOCAL_P (x))
       block_live[BLOCK_NUM (XEXP (x, 0))] = 1;
 
-  for (x = exception_handler_labels; x; x = XEXP (x, 1))
-    block_live[BLOCK_NUM (XEXP (x, 0))] = 1;
+  if (asynchronous_exceptions)
+    for (x = exception_handler_labels; x; x = XEXP (x, 1))
+      block_live[BLOCK_NUM (XEXP (x, 0))] = 1;
 
   /* Record which basic blocks control can drop in to.  */
 
@@ -531,6 +532,11 @@ find_basic_blocks (f, nonlocal_label_list)
              mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
                              insn, 0);
 
+           if (! asynchronous_exceptions)
+             for (x = exception_handler_labels; x; x = XEXP (x, 1))
+               mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
+                               insn, 0);
+
            /* ??? This could be made smarter:
               in some cases it's possible to tell that certain
               calls will not do a nonlocal goto.