r175988 - [analyzer] tracking stores/constraints now works for ObjC ivars or struct fields.

Ted Kremenek kremenek at apple.com
Sun Feb 24 22:20:39 PST 2013


On Feb 24, 2013, at 4:14 PM, Jordan Rose <jordan_rose at apple.com> wrote:

> Ted, there are many many expressions that are marked 'lvalue', especially in C++, even when the lvalue is not used. Can you please check how many recycle cases we are losing on, say, Sema.cpp?

Makes sense.  After running the analyzer with this change over LLVM I discovered a few assertion failures where we could not find the lvalue node.  I realized for the diagnostic purposes that we only care about DeclRefExpr, MemberExpr, and ObjCIVarRefExpr, so I refined the algorithm to only include those nodes.  I'll be committing that change shortly.

When I did this, the maximum number of extra nodes not reclaimed for a given ExplodedGraph when analyzing Sema.cpp was 57303, which for that case was a 2.89% increase in the size of the ExplodedGraph.  That was about the worst case that I saw.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130224/f90dc7f7/attachment.html>


More information about the cfe-commits mailing list