On Mon, Aug 6, 2012 at 4:09 PM, Richard Smith <[email protected]> wrote:
> On Mon, Aug 6, 2012 at 3:29 PM, Richard Trieu <[email protected]> wrote: > >> Modify the self-reference visitor to mark pass-by-reference to function >> calls as uninitialized use. This will warn on code such as: >> >> const string Foo = "prefix" + Foo + "suffix"; >> > > Can we put this under a more specific -W flag? -Wuninitialized is intended > to be essentially free of false positives. > Would this be more suited for a different uninitialized group or a new flag altogether? > > I'm a little concerned that this uninitialized-variables warning is > deviating from the behavior of the CFG-based warning, which explicitly > excludes variables passed by reference to functions from its list of uses, > so if this is effective at finding bugs, perhaps we should add this check > there too. > At least for classes, this seems to be a reasonable check. I'm not sure if it would be useful for other cases. > > --- lib/Sema/SemaDecl.cpp (revision 161345) > +++ lib/Sema/SemaDecl.cpp (working copy) > @@ -6223,7 +6223,7 @@ > > void VisitImplicitCastExpr(ImplicitCastExpr *E) { > if ((!isRecordType && E->getCastKind() == CK_LValueToRValue) || > - (isRecordType && E->getCastKind() == CK_NoOp)) > + (E->getCastKind() == CK_NoOp)) > > Drop these parens... But I'm not really clear on what this is checking > for. Presumably qualification conversions, but why are those a good place > to look for self-initialization? > T -> const T conversion when passed by reference.
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
