Patchwork remove lone user of MUST_USE_SJLJ_EXCEPTIONS

login
register
mail settings
Submitter Nathan Froyd
Date Nov. 22, 2010, 3:05 a.m.
Message ID <20101122030500.GY24469@nightcrawler>
Download mbox | patch
Permalink /patch/72496/
State New
Headers show

Comments

Nathan Froyd - Nov. 22, 2010, 3:05 a.m.
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.
Richard Henderson - Nov. 22, 2010, 4:20 p.m.
On 11/21/2010 07:05 PM, Nathan Froyd wrote:
> 	* 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.

Ok.


r~

Patch

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)