msp430.c (TARGET_WARN_FUNC_RETURN): Define.
authorJozef Lawrynowicz <jozef.l@mittosystems.com>
Thu, 24 May 2018 20:49:11 +0000 (20:49 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 24 May 2018 20:49:11 +0000 (14:49 -0600)
* config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define.
(msp430_warn_func_return): New.

From-SVN: r260690

gcc/ChangeLog
gcc/config/msp430/msp430.c

index b2ce686..c793380 100644 (file)
@@ -1,3 +1,8 @@
+2018-05-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define.
+       (msp430_warn_func_return): New.
+
 2018-05-24  Roger Sayle  <roger@nextmovesoftware.com>
 
         * fold-const.c (tree_nonzero_bits): New function.
index a8fed12..adde597 100644 (file)
@@ -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)