except.c: Include intl.h.
� * 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. From-SVN: r27908
This commit is contained in:
parent
88250fae5a
commit
2b12ffe08d
|
@ -406,6 +406,7 @@ Boston, MA 02111-1307, USA. */
|
||||||
#include "recog.h"
|
#include "recog.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include "toplev.h"
|
#include "toplev.h"
|
||||||
|
#include "intl.h"
|
||||||
#include "obstack.h"
|
#include "obstack.h"
|
||||||
|
|
||||||
/* One to use setjmp/longjmp method of generating code for exception
|
/* One to use setjmp/longjmp method of generating code for exception
|
||||||
|
@ -2446,6 +2447,7 @@ save_eh_status (p)
|
||||||
p->caught_return_label_stack = caught_return_label_stack;
|
p->caught_return_label_stack = caught_return_label_stack;
|
||||||
p->protect_list = protect_list;
|
p->protect_list = protect_list;
|
||||||
p->ehc = current_function_ehc;
|
p->ehc = current_function_ehc;
|
||||||
|
p->eh_return_stub_label = eh_return_stub_label;
|
||||||
|
|
||||||
init_eh_for_function ();
|
init_eh_for_function ();
|
||||||
}
|
}
|
||||||
|
@ -2469,6 +2471,7 @@ restore_eh_status (p)
|
||||||
ehstack = p->ehstack;
|
ehstack = p->ehstack;
|
||||||
catchstack = p->catchstack;
|
catchstack = p->catchstack;
|
||||||
current_function_ehc = p->ehc;
|
current_function_ehc = p->ehc;
|
||||||
|
eh_return_stub_label = p->eh_return_stub_label;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This section is for the exception handling specific optimization
|
/* This section is for the exception handling specific optimization
|
||||||
|
@ -2792,6 +2795,8 @@ expand_eh_return ()
|
||||||
if (!eh_return_context)
|
if (!eh_return_context)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
current_function_cannot_inline = N_("function uses __builtin_eh_return");
|
||||||
|
|
||||||
eh_regs (®1, ®2, ®3, 1);
|
eh_regs (®1, ®2, ®3, 1);
|
||||||
#ifdef POINTERS_EXTEND_UNSIGNED
|
#ifdef POINTERS_EXTEND_UNSIGNED
|
||||||
eh_return_context = convert_memory_address (Pmode, eh_return_context);
|
eh_return_context = convert_memory_address (Pmode, eh_return_context);
|
||||||
|
|
Loading…
Reference in New Issue