From patchwork Mon Nov 22 03:05:01 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: remove lone user of MUST_USE_SJLJ_EXCEPTIONS Date: Sun, 21 Nov 2010 17:05:01 -0000 From: Nathan Froyd X-Patchwork-Id: 72496 Message-Id: <20101122030500.GY24469@nightcrawler> To: gcc-patches@gcc.gnu.org Just as $SUBJECT suggests. Tested on h8300-elf. OK to commit? -Nathan * targhooks.c (default_except_unwind_info): Remove MUST_USE_SJLJ_EXCEPTIONS case. * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete. * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define. * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete. * doc/tm.texi: Regenerate. * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison. diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 1c7c27b..31aa54c 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -5975,4 +5975,7 @@ h8300_trampoline_init (rtx m_tramp, tree fndecl, rtx cxt) #undef TARGET_OPTION_OPTIMIZATION_TABLE #define TARGET_OPTION_OPTIMIZATION_TABLE h8300_option_optimization_table +#undef TARGET_EXCEPT_UNWIND_INFO +#define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info + struct gcc_target targetm = TARGET_INITIALIZER; diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h index 35094de..589b70f 100644 --- a/gcc/config/h8300/h8300.h +++ b/gcc/config/h8300/h8300.h @@ -125,10 +125,8 @@ extern const char * const *h8_reg_names; #define TARGET_DEFAULT (MASK_QUICKCALL) #endif -/* We want dwarf2 info available to gdb... */ +/* We want dwarf2 info available to gdb. */ #define DWARF2_DEBUGGING_INFO 1 -/* ... but we don't actually support full dwarf2 EH. */ -#define MUST_USE_SJLJ_EXCEPTIONS 1 /* The return address is pushed on the stack. */ #define INCOMING_RETURN_ADDR_RTX gen_rtx_MEM (Pmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM)) diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index fd3f426..d6c2a20 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -8878,13 +8878,6 @@ This variable should be set to @code{true} if the target ABI requires unwinding tables even when exceptions are not used. @end deftypevr -@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 DONT_USE_BUILTIN_SETJMP Define this macro to 1 if the @code{setjmp}/@code{longjmp}-based scheme should use the @code{setjmp}/@code{longjmp} functions from the C library diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index ea4c843..733e1f9 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -8848,13 +8848,6 @@ This variable should be set to @code{true} if the target ABI requires unwinding tables even when exceptions are not used. @end deftypevr -@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 DONT_USE_BUILTIN_SETJMP Define this macro to 1 if the @code{setjmp}/@code{longjmp}-based scheme should use the @code{setjmp}/@code{longjmp} functions from the C library diff --git a/gcc/system.h b/gcc/system.h index 73e5139..3b58974 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -785,7 +785,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \ TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP \ HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK CONDITIONAL_REGISTER_USAGE \ - FUNCTION_ARG_BOUNDARY + FUNCTION_ARG_BOUNDARY MUST_USE_SJLJ_EXCEPTIONS /* Hooks that are no longer used. */ #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 35cd592..f55fa85 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -1311,12 +1311,6 @@ default_debug_unwind_info (void) enum unwind_info_type default_except_unwind_info (void) { - /* ??? Change the one user to the hook, then poison this. */ -#ifdef MUST_USE_SJLJ_EXCEPTIONS - if (MUST_USE_SJLJ_EXCEPTIONS) - return UI_SJLJ; -#endif - /* Obey the configure switch to turn on sjlj exceptions. */ #ifdef CONFIG_SJLJ_EXCEPTIONS if (CONFIG_SJLJ_EXCEPTIONS)