aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/defaults.h4
-rw-r--r--gcc/df-scan.c2
-rw-r--r--gcc/except.c9
4 files changed, 14 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2254c00..5b3bf50 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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.
* defaults.h (TARGET_PECOFF): New default definition.
* varasm.c (handle_vtv_comdat_section): Adjust.
diff --git a/gcc/defaults.h b/gcc/defaults.h
index eca624c..0f1c713 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -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
diff --git a/gcc/df-scan.c b/gcc/df-scan.c
index 2e5fe97..a735925 100644
--- a/gcc/df-scan.c
+++ b/gcc/df-scan.c
@@ -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);
diff --git a/gcc/except.c b/gcc/except.c
index 1801fe7..1a41a34 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -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);