Wouldn't -Wshadow be more useful if it obeyed -Wno-system-headers?
For code like
#include <stdlib.h>
int foo (int atof);
int foo (int atof) { return atof; }
we currently do not warn on the prototype, but do on the function
definition, leading to reports such as
http://sourceware.org/bugzilla/show_bug.cgi?id=13121
The following has been bootstrapped and regression tested
powerpc-linux. OK to apply?
* c-decl.c (warn_if_shadowing): Don't warn if shadowed
identifier is from system header.
Index: gcc/c-decl.c
===================================================================
--- gcc/c-decl.c (revision 178035)
+++ gcc/c-decl.c (working copy)
@@ -2516,7 +2516,10 @@ warn_if_shadowing (tree new_decl)
/* Is anything being shadowed? Invisible decls do not count. */
for (b = I_SYMBOL_BINDING (DECL_NAME (new_decl)); b; b = b->shadowed)
- if (b->decl && b->decl != new_decl && !b->invisible)
+ if (b->decl && b->decl != new_decl && !b->invisible
+ && (b->decl == error_mark_node
+ || diagnostic_report_warnings_p (global_dc,
+ DECL_SOURCE_LOCATION (b->decl))))
{
tree old_decl = b->decl;
--
Alan Modra
Australia Development Lab, IBM