[cfe-dev] Patch: Re: -Wshadow rationale for data members
John McCall
rjmccall at apple.com
Fri Oct 29 15:52:28 PDT 2010
On Oct 29, 2010, at 3:45 PM, Axel Naumann wrote:
> Hi,
>
> On 10/21/10 7:38 PM, John McCall wrote:
>> On Oct 21, 2010, at 8:17 AM, Douglas Gregor wrote:
>>> On Oct 21, 2010, at 2:43 AM, Axel Naumann wrote:
>>>> struct A {
>>>> static void* f; void* g;
>>>> struct B { static void* f; void* g; };
>>>> };
>>>> struct C { static void* f; void* g;};
>>>> struct D: public C { static void* f; void* g; };
>>>>
>>>> compiled with
>>>> clang++ -c -Wall -Wshadow -O2 t.cxx
>>>> generates the warning
>>>>
>>>> t.cxx:3:28: warning: declaration shadows a static data member of 'A'
>>>> [-Wshadow]
>>>> struct B { static void* f; void* g; };
>>>> ^
>>>> t.cxx:2:17: note: previous declaration is here
>>>> static void* f; void* g;
>>>> ^
>>>
>>> It doesn't seem at all useful for Clang to warn about static data members shadowing something else by the same name. Personally, I'd limit -Wshadow to only complain when a local declaration shadows something from the outer scope.
>>
>> I agree.
>
> You mean like in the attached patch? The corresponding tests still to be
> updated (removed, mostly), i.e. please don't commit :-)
Yeah, I guess that's what we're looking for. Please lift the comment up into the block comment above the if statement, though.
John.
More information about the cfe-dev
mailing list