Commit 30281de2 by Marek Polacek Committed by Marek Polacek

re PR c/61852 (Incorrect column number for -Wimplicit-function-declaration)

	PR c/61852
	* c-decl.c (implicit_decl_warning): Add location_t parameter.  Use it.
	(implicitly_declare): Pass location to implicit_decl_warning.

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

From-SVN: r212865
parent 55d1bd59
2014-07-20 Marek Polacek <polacek@redhat.com>
PR c/61852
* c-decl.c (implicit_decl_warning): Add location_t parameter. Use it.
(implicitly_declare): Pass location to implicit_decl_warning.
2014-07-14 Jakub Jelinek <jakub@redhat.com> 2014-07-14 Jakub Jelinek <jakub@redhat.com>
PR middle-end/61294 PR middle-end/61294
......
...@@ -2951,18 +2951,18 @@ pushdecl_top_level (tree x) ...@@ -2951,18 +2951,18 @@ pushdecl_top_level (tree x)
} }
static void static void
implicit_decl_warning (tree id, tree olddecl) implicit_decl_warning (location_t loc, tree id, tree olddecl)
{ {
if (warn_implicit_function_declaration) if (warn_implicit_function_declaration)
{ {
bool warned; bool warned;
if (flag_isoc99) if (flag_isoc99)
warned = pedwarn (input_location, OPT_Wimplicit_function_declaration, warned = pedwarn (loc, OPT_Wimplicit_function_declaration,
"implicit declaration of function %qE", id); "implicit declaration of function %qE", id);
else else
warned = warning (OPT_Wimplicit_function_declaration, warned = warning_at (loc, OPT_Wimplicit_function_declaration,
G_("implicit declaration of function %qE"), id); G_("implicit declaration of function %qE"), id);
if (olddecl && warned) if (olddecl && warned)
locate_old_decl (olddecl); locate_old_decl (olddecl);
} }
...@@ -3015,7 +3015,7 @@ implicitly_declare (location_t loc, tree functionid) ...@@ -3015,7 +3015,7 @@ implicitly_declare (location_t loc, tree functionid)
then recycle the old declaration but with the new type. */ then recycle the old declaration but with the new type. */
if (!C_DECL_IMPLICIT (decl)) if (!C_DECL_IMPLICIT (decl))
{ {
implicit_decl_warning (functionid, decl); implicit_decl_warning (loc, functionid, decl);
C_DECL_IMPLICIT (decl) = 1; C_DECL_IMPLICIT (decl) = 1;
} }
if (DECL_BUILT_IN (decl)) if (DECL_BUILT_IN (decl))
...@@ -3052,7 +3052,7 @@ implicitly_declare (location_t loc, tree functionid) ...@@ -3052,7 +3052,7 @@ implicitly_declare (location_t loc, tree functionid)
DECL_EXTERNAL (decl) = 1; DECL_EXTERNAL (decl) = 1;
TREE_PUBLIC (decl) = 1; TREE_PUBLIC (decl) = 1;
C_DECL_IMPLICIT (decl) = 1; C_DECL_IMPLICIT (decl) = 1;
implicit_decl_warning (functionid, 0); implicit_decl_warning (loc, functionid, 0);
asmspec_tree = maybe_apply_renaming_pragma (decl, /*asmname=*/NULL); asmspec_tree = maybe_apply_renaming_pragma (decl, /*asmname=*/NULL);
if (asmspec_tree) if (asmspec_tree)
set_user_assembler_name (decl, TREE_STRING_POINTER (asmspec_tree)); set_user_assembler_name (decl, TREE_STRING_POINTER (asmspec_tree));
......
2014-07-20 Marek Polacek <polacek@redhat.com>
PR c/61852
* gcc.dg/pr61852.c: New test.
2014-07-19 Eric Botcazou <ebotcazou@adacore.com> 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
* gcc.dg/stack-usage-2.c: Adjust. * gcc.dg/stack-usage-2.c: Adjust.
......
/* PR c/61852 */
/* { dg-do compile } */
/* { dg-options "-Wimplicit-function-declaration" } */
int
f (int a)
{
int b = a + a + a + ff (a); /* { dg-warning "23:implicit declaration of function" } */
return b;
}
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