* config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
* config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
* config/sh/sh-protos.h: Declare it.
From-SVN: r189362
+2012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
+
+ * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
+ * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
+ * config/sh/sh-protos.h: Declare it.
+
2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
* mcf.c: Do not include tm.h, tree.h, and langhooks.h.
extern bool sh_expand_t_scc (rtx *);
extern rtx sh_gen_truncate (enum machine_mode, rtx, int);
extern bool sh_vector_mode_supported_p (enum machine_mode);
+extern bool sh_cfun_trap_exit_p (void);
#endif /* RTX_CODE */
extern const char *output_jump_label_table (void);
!= NULL_TREE) && TARGET_SH2A);
}
+/* Returns true if the current function has a "trap_exit" attribute set. */
+
+bool
+sh_cfun_trap_exit_p (void)
+{
+ return lookup_attribute ("trap_exit", DECL_ATTRIBUTES (current_function_decl))
+ != NULL_TREE;
+}
+
/* Implement TARGET_CHECK_PCH_TARGET_FLAGS. */
static const char *
&& (crtl->args.info.call_cookie
& CALL_COOKIE_RET_TRAMP (1)))
&& reload_completed
- && lookup_attribute (\"trap_exit\",
- DECL_ATTRIBUTES (current_function_decl)) == NULL_TREE"
+ && ! sh_cfun_trap_exit_p ()"
{
if (TARGET_SH2A && (dbr_sequence_length () == 0)
&& !current_function_interrupt)