Commit cbdd8ae0 by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/66869 (-Wunused-function no longer warns for static declarations without definition)

	PR debug/66869
	* c-decl.c (c_write_global_declarations_1): Warn with
	warn_unused_function if static prototype without definition
	is not C_DECL_USED.

	* gcc.dg/pr66869.c: New test.

From-SVN: r232899
parent 8dc781e4
2016-01-27 Jakub Jelinek <jakub@redhat.com>
PR debug/66869
* c-decl.c (c_write_global_declarations_1): Warn with
warn_unused_function if static prototype without definition
is not C_DECL_USED.
2016-01-27 Marek Polacek <polacek@redhat.com>
PR c/68062
......
......@@ -10741,11 +10741,22 @@ c_write_global_declarations_1 (tree globals)
if (TREE_CODE (decl) == FUNCTION_DECL
&& DECL_INITIAL (decl) == 0
&& DECL_EXTERNAL (decl)
&& !TREE_PUBLIC (decl)
&& C_DECL_USED (decl))
&& !TREE_PUBLIC (decl))
{
pedwarn (input_location, 0, "%q+F used but never defined", decl);
TREE_NO_WARNING (decl) = 1;
if (C_DECL_USED (decl))
{
pedwarn (input_location, 0, "%q+F used but never defined", decl);
TREE_NO_WARNING (decl) = 1;
}
/* For -Wunused-function warn about unused static prototypes. */
else if (warn_unused_function
&& ! DECL_ARTIFICIAL (decl)
&& ! TREE_NO_WARNING (decl))
{
warning (OPT_Wunused_function,
"%q+F declared %<static%> but never defined", decl);
TREE_NO_WARNING (decl) = 1;
}
}
wrapup_global_declaration_1 (decl);
......
2016-01-27 Jakub Jelinek <jakub@redhat.com>
PR debug/66869
* gcc.dg/pr66869.c: New test.
2016-01-25 Jeff Law <law@redhat.com>
PR tree-optimization/68398
......
/* PR debug/66869 */
/* { dg-do compile } */
/* { dg-options "-Wunused-function" } */
static void test (void); /* { dg-warning "'test' declared 'static' but never defined" } */
int i;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment