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

Reply via email to