On Wed, 25 Apr 2012, Manuel López-Ibáñez 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?
I think you should check if the decl has function type or pointer to function type. (Nested functions are simply I think the only valid case where you can end up with one function shadowing another; "has function type" is the logical check rather than "is a nested function".) -- Joseph S. Myers jos...@codesourcery.com