dcoughlin accepted this revision. dcoughlin added a comment. This revision is now accepted and ready to land.
Thanks, this looks good to me! Do you have commit access or do you need someone to commit it for you? ================ Comment at: lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp:64 + if (const UnaryOperator *U = dyn_cast<UnaryOperator>(StoreE)) { + str = "The expression of the unary operator is an uninitialized value. " + "The computed value will also be garbage"; ---------------- xazax.hun wrote: > lebedev.ri wrote: > > xazax.hun wrote: > > > lebedev.ri wrote: > > > > dcoughlin wrote: > > > > > "Unary operator" is probably not something we should expect users to > > > > > know about. How about just "The expression is an uninitialized value. > > > > > The computed value will also be garbage." > > > > > > > > > Yep, i did not like my wording either :) > > > A value being undefined does nt mean uninitialized. E.g.: the result of a > > > bad shift operation might be UndefVal as well. > > > Aren't these diagnostics misleading in those cases? Or we do not care > > > about those? > > I think this is for @dcoughlin to answer. > > But shift operation is a binary operator, so this diff should not change > > that. > I was wondering about examples like: > ``` > int x = 1 << -1; > ++x; > ``` > > In this particular case, it will not issue the misleading error message. The > shift that results in an undefined value will generate an error node, so we > will not warn for the pre increment. > > But in general I am a bit uncomfortable about the assumption of this check: > if a value is undefined the reason is that it is being uninitialized. > > Note that, of course this problem is not specific to this patch but a general > question about the checker. It is a good point, but I think fixing it should wait until a later patch. Repository: rC Clang https://reviews.llvm.org/D40463 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits