OSDN Git Service

X
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Jul 1999 23:53:00 +0000 (23:53 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Jul 1999 23:53:00 +0000 (23:53 +0000)
        * except.c: Include intl.h.
        (expand_eh_return): Set current_function_cannot_inline.
        (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
        * function.h (struct function): Add eh_return_stub_label.
        * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
        * Makefile.in (except.o): Depend on intl.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27909 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/Makefile.in
gcc/flow.c
gcc/function.h

index 3b79e41..e5ceefe 100644 (file)
@@ -1475,7 +1475,7 @@ stmt.o : stmt.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h function.h  \
    loop.h $(RECOG_H) toplev.h output.h varray.h
 except.o : except.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
    function.h insn-flags.h $(EXPR_H) $(REGS_H) hard-reg-set.h \
-   insn-config.h $(RECOG_H) output.h except.h toplev.h
+   insn-config.h $(RECOG_H) output.h except.h toplev.h intl.h
 expr.o : expr.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h function.h \
    $(REGS_H) insn-flags.h insn-codes.h $(EXPR_H) insn-config.h $(RECOG_H) \
    output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h except.h
index 8b0a769..edcee29 100644 (file)
@@ -1578,6 +1578,7 @@ delete_unreachable_blocks ()
       /* A loop because chains of blocks might be combineable.  */
       while ((s = b->succ) != NULL
             && s->succ_next == NULL
+            && (s->flags & EDGE_EH) == 0
             && (c = s->dest) != EXIT_BLOCK_PTR
             && c->pred->pred_next == NULL
             && merge_blocks (s, b, c))
index 297c4f0..c25933c 100644 (file)
@@ -146,6 +146,7 @@ struct function
   struct label_node *caught_return_label_stack;
   tree protect_list;
   rtx ehc;
+  rtx eh_return_stub_label;
 
   /* For expr.c.  */
   rtx pending_chain;