- User Since
- Apr 14 2017, 1:59 PM (39 w, 4 d)
Fri, Jan 12
Thu, Jan 11
@krytarowski CMake changes look good to me, but I'm not the code owner, so probably @kcc (or @morehouse) would have to approve it first.
It's interesting that tests requiring intrinsics instrumentation are failing, is it hard to port those as well? (though that could be done in a separate patch)
Wed, Jan 10
Changed: now ExecutedLines field belongs to PathDiagnostic and is always calculated. As a result, the change is much smaller.
Tue, Jan 9
I think you'll also want to handle the case where the region of interest is a field and the containing struct/class is passed to the function (same for when the region of interest is an array element). Subregion::isSubRegionOf() will probably be helpful there.
You'll also probably want to handle when the region of interest is a sub region of 'this'/'self'.
If we find that too many notes are being emitted (once you handle 'self' I think that will be a real possibility) you may want to add a heuristic that only displays the notes when a function has control flow or when some other path may write to the region of interest. (This last could be done with a simple, separate, flow-insensitive syntactic analysis).
Mon, Jan 8
@dcoughlin your high-level comment makes sense, I wanted a least intrusive change.
What about just adding a metadata field to PathDiagnostic?
The case which I don't know how to handle for know is "void" functions without a return statement. Where the note should be attached in those cases?
Fri, Jan 5
Thu, Jan 4
Wed, Jan 3
Tue, Jan 2
The error is triggered when analyzer finds a bug *inside* the callable captured by the body farm.
Probably we didn't see the crash in the wild because either
a) the clang build did not have assertions enabled
b) the HTML output was not enabled
Thu, Dec 21
Synchronize keyboard navigation with mouse navigation.
Wed, Dec 20
Added tests. It is bad to match against HTML output directly, but we can match against provided JSON.
Tue, Dec 19
Proper macro handling.
Bugfixes, shortcut, always showing function prototype.
Mon, Dec 18
Abandoned in favor of https://reviews.llvm.org/D41378
Dec 15 2017
@alexshap That's a good question, and honestly I am not sure.
It is probably a good idea to have the tests which run the counterexample dumper and check that it does not crash.
As for the contents, I'm not sure: I would like to switch to generating HTML, and testing HTML output is IMO close to useless, because it has all the presentation stuff in it.
@dcoughlin @NoQ I think this version is reasonable enough to get committed. Another easy iteration would be to change visitor to simply add the diagnostic to path, and move the actual printing to CounterexampleDiagnostics.
Fixed formatting, moved output to diagnostic consumer.
Dec 14 2017
@dcoughlin my current iteration creates a PathDiagnosticConsumer which outputs HTML with this report. I think that makes much more sense (as essentially this is a way of visualizing the error path).
Dec 13 2017
I've tried using the patch, and I got blocked at the following: CTU options are only exposed when one goes through analyze-build frontend, which requires compile_commands.json to be present. I've used libear to generate compile_commands.json, but the generated JSON does not contain the command field, which causes @require before run to die (also, due to the passing style this error was unnecessarily difficult to debug).
So could you write a short documentation somewhere how all pieces fit together? What entry point should be used, what should people do who don't have a build system-generated compile_commands.jsonetc. etc.
Dec 12 2017
Dec 8 2017
Dec 6 2017
Dec 5 2017
Dec 4 2017
The build rule is and will remain extremely simple
Nov 30 2017
Update: change the logic, do nothing if the index result is an rvalue.
Nov 29 2017
If the type extension approach is proven to be sound
Nov 28 2017
Nov 27 2017
Nov 9 2017
I'm curious if the crash would turn into an assertion failure during getRawSVal() after D38801 is committed.
Looks good to me, but maybe someone else should take a look as well.
Nov 8 2017
@dcoughlin OK to commit?
I think I lack context to completely get what is going on here: I assume we don't model the assignment here?