diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-28 05:24:24 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-28 05:24:24 +0000 |
commit | 10be98bd87222a5f7c2a8eb07bf9ddbfd0d7f839 (patch) | |
tree | bb2aa76dca055c2e46eabf6e73ba0e455926a762 /gcc/except.h | |
parent | e37b49973baa87e166784df747495ab2408ae0c4 (diff) | |
download | gcc-10be98bd87222a5f7c2a8eb07bf9ddbfd0d7f839.tar.gz |
Make -fsjlj-exceptions a configure option.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40905 138bc75d-0d04-0410-961f-82ee72b054a4
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 f4eda909f75..9ce470612e7 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 |