Ah, now I see your follow-up email. Soryr I missed it... On Wed, Mar 23, 2016 at 9:30 AM, David Blaikie <dblai...@gmail.com> wrote:
> Reid sent out a different patch for this warning improvement. Have you > checked that one out? Is it abandoned? > > I'm still a bit concerned about whitelisting all these cases & not > catching cases where the parameter is then used inside the function in some > problematic way (the classic being a unique_ptr parameter, moved into a > member, then the parameter (instead of the member) is referenced in the > body of the function). > > On Wed, Mar 23, 2016 at 7:43 AM, Alexander Kornienko via cfe-commits < > cfe-commits@lists.llvm.org> wrote: > >> alexfh created this revision. >> alexfh added reviewers: rsmith, rnk. >> alexfh added a subscriber: cfe-commits. >> >> -Wshadow: don't warn on ctor parameters with the same name as a field >> name. This fixes a broad class of false positives resulting from a widely >> used >> pattern: >> >> struct A { >> int q; >> A(int q) : q(q) {} >> }; >> >> Fixes http://llvm.org/PR16088. >> >> http://reviews.llvm.org/D18395 >> >> Files: >> lib/Sema/SemaDecl.cpp >> test/SemaCXX/warn-shadow.cpp >> >> Index: test/SemaCXX/warn-shadow.cpp >> =================================================================== >> --- test/SemaCXX/warn-shadow.cpp >> +++ test/SemaCXX/warn-shadow.cpp >> @@ -71,6 +71,14 @@ >> }; >> } >> >> +// http://llvm.org/PR16088 >> +namespace PR16088 { >> +struct S { >> + int i; >> + S(int i) : i(i) {} >> +}; >> +} >> + >> extern int bob; // expected-note {{previous declaration is here}} >> >> // rdar://8883302 >> Index: lib/Sema/SemaDecl.cpp >> =================================================================== >> --- lib/Sema/SemaDecl.cpp >> +++ lib/Sema/SemaDecl.cpp >> @@ -6406,6 +6406,11 @@ >> } >> } >> >> + // Don't warn on constructor parameters with the same name as a field >> name. >> + if (isa<FieldDecl>(ShadowedDecl) && isa<CXXConstructorDecl>(NewDC) && >> + isa<ParmVarDecl>(D)) >> + return; >> + >> DeclContext *OldDC = ShadowedDecl->getDeclContext(); >> >> // Only warn about certain kinds of shadowing for class members. >> >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> >> >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits