This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PR c/53066 Wshadow should not warn for shadowing an extern function

On Wed, 25 Apr 2012, Manuel López-Ibáñez wrote:

> On 25 April 2012 00:01, Joseph S. Myers <> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]