diff options
Diffstat (limited to 'gcc/except.h')
-rw-r--r-- | gcc/except.h | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/gcc/except.h b/gcc/except.h index f4eda90..9ce4706 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -472,10 +472,6 @@ extern void push_ehqueue PARAMS ((void)); /* Restore a previously pushed ehqueue. */ extern void pop_ehqueue PARAMS ((void)); -/* One to use setjmp/longjmp method of generating code. */ - -extern int exceptions_via_longjmp; - /* One to enable asynchronous exception support. */ extern int flag_non_call_exceptions; @@ -516,3 +512,27 @@ void init_insn_eh_region PARAMS ((rtx, int)); #ifdef rtx #undef rtx #endif + +/* Just because the user configured --with-sjlj-exceptions=no doesn't + mean that we can use call frame exceptions. Detect that the target + has appropriate support. */ + +#ifdef CONFIG_SJLJ_EXCEPTIONS +# if CONFIG_SJLJ_EXCEPTIONS == 1 +# define USING_SJLJ_EXCEPTIONS 1 +# endif +# if CONFIG_SJLJ_EXCEPTIONS == 0 +# define USING_SJLJ_EXCEPTIONS 0 +# if !defined(DWARF2_UNWIND_INFO) && !defined(IA64_UNWIND_INFO) + #error "{DWARF2,IA64}_UNWIND_INFO required" +# endif +# endif +#else +# ifdef IA64_UNWIND_INFO +# define USING_SJLJ_EXCEPTIONS (!IA64_UNWIND_INFO) +# else +# ifdef DWARF2_UNWIND_INFO +# define USING_SJLJ_EXCEPTIONS (!DWARF2_UNWIND_INFO) +# endif +# endif +#endif |