summaryrefslogtreecommitdiff
path: root/gcc/except.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-03-28 05:24:24 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-03-28 05:24:24 +0000
commit10be98bd87222a5f7c2a8eb07bf9ddbfd0d7f839 (patch)
treebb2aa76dca055c2e46eabf6e73ba0e455926a762 /gcc/except.h
parente37b49973baa87e166784df747495ab2408ae0c4 (diff)
downloadgcc-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.h28
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