Page MenuHomePhabricator

[analyzer][UninitializedObjectChecker] Mark uninitialized regions as interesting.
Changes PlannedPublic

Authored by Szelethus on Jun 5 2019, 4:28 AM.

Diff Detail

Event Timeline

Szelethus created this revision.Jun 5 2019, 4:28 AM

Looks much better than the original one, but why did the warning move to the correct place just because marking the region as interesting?

Ping, anything against this? :)

NoQ added a comment.Jun 14 2019, 5:36 PM

I don't remember what exactly does markInteresting() do and these tests don't really convince me that it does anything at all. Halp? >.<

In D62899#1544630, @NoQ wrote:

I don't remember what exactly does markInteresting() do and these tests don't really convince me that it does anything at all. Halp? >.<

Damnit, forgot my actual test file in the office (did not git add it).

I wanted to just say "Well markInteresting() is about the same as trackExpressionValue()!", and while I suspect that there's some truth to that, honestly, it's explained extremely poorly in the code. As I understand it, interesting symbols and expressions are used in the pruning of the bug path, namely, if a you'd like to prune out B->C->D from bugpath A->B->C->D->E, but C is interesting, no pruning will take place.

I particularly liked your description of BugReporter.cpp as a "military grade portion of spaghetti", because thats pretty much all I could figure out. I'll try harder though, because it seems to be an important part of the bug report construction. @xazax.hun, you seem to be a lot more confident with this, is what I'm saying more or less correct?

Szelethus updated this revision to Diff 205511.EditedTue, Jun 18, 11:45 PM

Added a proper testfile. The only downside of it is that it doesn't test anything. Literally nothing would change if I didn't mark the fields interesting. I'll take this back to the drawing board.

Szelethus planned changes to this revision.Tue, Jun 18, 11:46 PM
NoQ added a comment.Wed, Jun 19, 5:20 PM

Added a proper testfile. The only downside of it is that it doesn't test anything.

Use creduce!