diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fb665c3d449a856b769f2d7b93ffd29c0244cebc..1ae0fbd432ef275e308f5af9f49f090eb55c2026 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 1e9a45c75869aa8146e0b105e01bcd5c38a1be26..74616d8476339a75f8c2493a2f1dce380d9bd9f8 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 e2c37059d77ae3a2cf17fb2744cf6adec7b1244e..75bbd6f9c3886b8daaf675c13ee8a0e8f93b53b4 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