+2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR c/53633
+ * c-decl.c (finish_function): Check targetm.warn_func_return
+ before issuing a -Wreturn-type warning.
+
2019-07-12 Alexandre Oliva <oliva@adacore.com>
* gimple-parser.c (c_parser_gimple_try_stmt): New.
/* Normally, with -Wreturn-type, flow will complain, but we might
optimize out static functions. */
&& !TREE_PUBLIC (fndecl)
+ && targetm.warn_func_return (fndecl)
&& warning (OPT_Wreturn_type,
"no return statement in function returning non-void"))
TREE_NO_WARNING (fndecl) = 1;
+2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * c-c++-common/pr53633-2.c: New test.
+
2019-07-17 Alexandre Oliva <oliva@adacore.com>
PR middle-end/81824
--- /dev/null
+/* { dg-do compile } */
+/* { dg-require-effective-target naked_functions } */
+/* { dg-options "-O2 -Wall" } */
+/* Check that we do not get warnings about missing return statements
+ or bogus looking noreturn functions. */
+static int __attribute__((naked))
+foo (void)
+{
+ __asm__ ("");
+}
+
+static int __attribute__((naked,noreturn))
+bar (void)
+{
+ __asm__ ("");
+}
+
+int foo_caller (void) { return foo (); }
+int bar_caller (void) { return bar (); }