User Details
- User Since
- Oct 1 2013, 1:22 PM (521 w, 1 d)
Nov 1 2016
LGTM.
Oct 25 2015
These all look good to me.
Sep 12 2015
Applied in r247510.
Sep 11 2015
LGTM as well. Thanks Sean.
Sep 7 2015
Committed in r246978.
I am OK with taking these changes. For those using git, git blame -w should suffice to show the real blame history.
This looks fine, but I'm not a fan of the actual name chosen here. It's not very clear what it means by just looking at the name, and as we grow the number of configuration options that will become more important.
Sep 2 2015
Aug 31 2015
Aug 28 2015
Hi Sean,
Aug 27 2015
I think the functionality started here by doing something clever with loops is complex enough to warrant putting this into a separate .cpp file. We can keep this here for now, but this seems like complexity that is going to naturally creep up and make this file even more monolithic than it already is.
Aug 26 2015
One thing about the tests passing: that's great, but that's obviously insufficient. We probably have fewer tests showing that the analyzer can't handle something than tests that show it does handle something.
FWIW, I do think this is a great problem to work on. It is easy to come up with solutions that work for specific examples but fall over on general code. I completely agree that failing to analyzing code after the loop is a major hole and lost opportunity to find bugs, but fixing that should not be at a tradeoff of a huge influx in false positives. Some basic invalidation of values touched by the loop, which includes possibly invalidating checker state, will likely be necessary. I think this is what Anna was getting to in her comment.
Aug 24 2015
Aug 21 2015
Aug 19 2015
Looks fine in UninitializedValues.
Aug 18 2015
I think this is a great refinement overall, with a few minor nits. It also isn't clear what the test does.
Aug 8 2015
Committed r244400
Aug 7 2015
Aug 3 2015
Jul 31 2015
In general I'm not a fan of the taint methods being directly on ProgramState, but this extends the current pattern. We could move the APIs elsewhere later.
I don't remember why the 'tainted' methods were added to ProgramState in the first place, but it doesn't seem quite right. Taint can easily be modeled as a set of APIs that modify and produce new ProgramStates, but I don't see why it should be part of ProgramState itself.
Jul 30 2015
Sep 9 2014
This feels like a big hammer to wield just to prevent the conservative invalidation done by the static analyzer for calls to functions whose bodies are not available.
Aug 19 2014
Thanks Aleksei. That explanation helps quite a bit. I've responded in Phabricator with some comments.
Can you please provide a test case that shows what problem this fixed?
Looks good to me.
Aug 16 2014
Hi Aleksei,