aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/doc/tm.texi7
-rw-r--r--gcc/except.h10
3 files changed, 17 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb665c3..1ae0fbd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change.
+ Allow override.
+ * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document.
+
2003-09-23 David S. Miller <davem@redhat.com>
* config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 1e9a45c..74616d8 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -7497,6 +7497,13 @@ If this macro is defined to anything, the DWARF 2 unwinder will be used
instead of inline unwinders and @code{__unwind_function} in the non-@code{setjmp} case.
@end defmac
+@defmac MUST_USE_SJLJ_EXCEPTIONS
+This macro need only be defined if @code{DWARF2_UNWIND_INFO} is
+runtime-variable. In that case, @file{except.h} cannot correctly
+determine the corresponding definition of
+@code{MUST_USE_SJLJ_EXCEPTIONS}, so the target must provide it directly.
+@end defmac
+
@defmac DWARF_CIE_DATA_ALIGNMENT
This macro need only be defined if the target might save registers in the
function prologue at an offset to the stack pointer that is not aligned to
diff --git a/gcc/except.h b/gcc/except.h
index e2c3705..75bbd6f 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -142,17 +142,15 @@ extern tree (*lang_eh_runtime_type) (tree);
mean that we can use call frame exceptions. Detect that the target
has appropriate support. */
-#if ! (defined (EH_RETURN_DATA_REGNO) \
+#ifndef MUST_USE_SJLJ_EXCEPTIONS
+# if !(defined (EH_RETURN_DATA_REGNO) \
&& (defined (IA64_UNWIND_INFO) \
|| (DWARF2_UNWIND_INFO \
&& (defined (EH_RETURN_HANDLER_RTX) \
|| defined (HAVE_eh_return)))))
-# define MUST_USE_SJLJ_EXCEPTIONS 1
-#else
-# ifdef IA64_UNWIND_INFO
-# define MUST_USE_SJLJ_EXCEPTIONS 0
+# define MUST_USE_SJLJ_EXCEPTIONS 1
# else
-# define MUST_USE_SJLJ_EXCEPTIONS (DWARF2_UNWIND_INFO == 0)
+# define MUST_USE_SJLJ_EXCEPTIONS 0
# endif
#endif