On Wed, Apr 25, 2012 at 5:36 AM, Manuel López-Ibáñez <lopeziba...@gmail.com> wrote: > On 25 April 2012 00:01, Joseph S. Myers <jos...@codesourcery.com> wrote: >> On Sun, 22 Apr 2012, Manuel López-Ibáñez wrote: >> >>> Wshadow warns whenever any declaration shadows a global function >>> declaration. This is almost always noise, since most (always?) of the >>> time one cannot mistakenly replace a function by another variable. The >>> false positives are too common (Linus mentions using the name 'index' >>> when including string.h). >> >> I think the correct rule would be: warn if a variable *with >> pointer-to-function type* shadows a function, and warn if a nested >> function shadows another function, but don't warn for variables shadowing >> functions if the variable has any other type (because if the variable has >> some type that isn't a pointer-to-function, no confusion is likely without >> another error being given). > > Right. How does one check that a decl is a nested function?
is DECL_CONTEXT (decl_function_context (t)) a FUNCTION_DECL?