always define EH_RETURN_HANDLER_RTX
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Sun, 15 Nov 2015 00:18:01 +0000 (00:18 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Sun, 15 Nov 2015 00:18:01 +0000 (00:18 +0000)
gcc/ChangeLog:

2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
* df-scan.c (df_get_exit_block_use_set): Adjust.
* except.c (expand_eh_return): Likewise.

From-SVN: r230392

gcc/ChangeLog
gcc/defaults.h
gcc/df-scan.c
gcc/except.c

index 2254c0092607e438a11111eab02f5357bd6393e0..5b3bf501ad0229a0df3e2d87a575af75da9dd3ee 100644 (file)
@@ -1,3 +1,9 @@
+2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
+
+       * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
+       * df-scan.c (df_get_exit_block_use_set): Adjust.
+       * except.c (expand_eh_return): Likewise.
+
 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
 
        * config/i386/i386.h (TARGET_PECOFF): Remove define.
index eca624ca1be52c9cf7db4f7c61dd5476593c714c..0f1c713c889d87d87896a62fd55c6c15b02b0aaa 100644 (file)
@@ -1305,6 +1305,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define TARGET_PECOFF 0
 #endif
 
+#ifndef EH_RETURN_HANDLER_RTX
+#define EH_RETURN_HANDLER_RTX NULL
+#endif
+
 #ifdef GCC_INSN_FLAGS_H
 /* Dependent default target macro definitions
 
index 2e5fe974a5a767ff92229e803355aa84a8100382..a7359259d33e648bf60b983bcf2d674052f850c4 100644 (file)
@@ -3714,7 +3714,6 @@ df_get_exit_block_use_set (bitmap exit_block_uses)
     }
 #endif
 
-#ifdef EH_RETURN_HANDLER_RTX
   if ((!targetm.have_epilogue () || ! epilogue_completed)
       && crtl->calls_eh_return)
     {
@@ -3722,7 +3721,6 @@ df_get_exit_block_use_set (bitmap exit_block_uses)
       if (tmp && REG_P (tmp))
        df_mark_reg (tmp, exit_block_uses);
     }
-#endif
 
   /* Mark function return value.  */
   diddle_return_value (df_mark_reg, (void*) exit_block_uses);
index 1801fe726d1f2a3639c10d286ffd9650a0602e53..1a41a34cd0409f8b024af817aa414c829f9e59a7 100644 (file)
@@ -2255,11 +2255,10 @@ expand_eh_return (void)
     emit_insn (targetm.gen_eh_return (crtl->eh.ehr_handler));
   else
     {
-#ifdef EH_RETURN_HANDLER_RTX
-      emit_move_insn (EH_RETURN_HANDLER_RTX, crtl->eh.ehr_handler);
-#else
-      error ("__builtin_eh_return not supported on this target");
-#endif
+      if (rtx handler = EH_RETURN_HANDLER_RTX)
+       emit_move_insn (handler, crtl->eh.ehr_handler);
+      else
+       error ("__builtin_eh_return not supported on this target");
     }
 
   emit_label (around_label);