Implement TARGET_WARN_FUNC_RETURN for msp430-elf, to eliminate warnings when functions with the "naked" attribute do not return. The GCC testsuite completes with no regressions for msp430-elf, and this fixes pr53633.
If the patch is acceptable, I would appreciate it if someone could commit it for me, as I don't have write access.
>From 6b7a22144d70bcccfeebc9fcefd724e8f05a6e09 Mon Sep 17 00:00:00 2001 From: Jozef Lawrynowicz <joze...@mittosystems.com> Date: Wed, 23 May 2018 21:33:45 +0100 Subject: [PATCH] MSP430: Dont warn if naked function does not return 2018-05-23 Jozef Lawrynowicz <joze...@mittosystems.com> gcc/config/msp430/msp430.c (msp430_warn_func_return): New. --- gcc/config/msp430/msp430.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c index a8fed12..adde597 100644 --- a/gcc/config/msp430/msp430.c +++ b/gcc/config/msp430/msp430.c @@ -1855,6 +1855,17 @@ msp430_allocate_stack_slots_for_args (void) return ! is_naked_func (); } +#undef TARGET_WARN_FUNC_RETURN +#define TARGET_WARN_FUNC_RETURN msp430_warn_func_return + +static bool +msp430_warn_func_return (tree decl) +{ + /* Naked functions are implemented entirely in assembly, including the + return sequence, so suppress warnings about this. */ + return !is_naked_func (decl); +} + /* Verify MSP430 specific attributes. */ #define TREE_NAME_EQ(NAME, STR) (strcmp (IDENTIFIER_POINTER (NAME), (STR)) == 0) -- 2.7.4