Add a label to nodes that have a bug report attached or on which the analysis was generally interrupted.
Fix printing has_report and implement printing is_sink in the graph dumper.
Paths
| Differential D64110
[analyzer] exploded-graph-rewriter: Implement bug nodes and sink nodes. ClosedPublic Authored by NoQ on Jul 2 2019, 4:10 PM.
Details Summary Add a label to nodes that have a bug report attached or on which the analysis was generally interrupted. Fix printing has_report and implement printing is_sink in the graph dumper.
Diff Detail Event TimelineComment Actions I have removed that is_sink business because we have an actual graph, not just a huge painting, so you could mark whether it is sink by it has zero successors. I like the idea about refactoring that crazy code, thanks! This revision is now accepted and ready to land.Jul 2 2019, 4:15 PM Comment Actions Sink node is not the same thing as "zero successors". A sink node is a node in which termination was explictly requested as part of modeling, which is usually nice to know. A non-sink node may have no successors because it ran out of statements to execute (i.e., the analysis finishes successfully). P.S. I don't have many more plans on implementing more prints in the exploded-graph-rewriter. I have plans to implement different Explorers (which would only visit a part of the graph). You should now be unblocked to take a look at the SVG stuff that you had (but pls keep it at a lower priority than the immediate GSoC stuff). Comment Actions
Ah, of course, sorry.
Thanks for your huge amount of work! "Hold my beer." Closed by commit rL364992: [analyzer] exploded-graph-rewriter: Implement bug nodes and sink nodes. (authored by NoQ). · Explain WhyJul 2 2019, 6:27 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 207648 clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
clang/test/Analysis/exploded-graph-rewriter/checker_messages.dot
clang/test/Analysis/exploded-graph-rewriter/checker_messages_diff.dot
clang/test/Analysis/exploded-graph-rewriter/constraints.dot
clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot
clang/test/Analysis/exploded-graph-rewriter/edge.dot
clang/test/Analysis/exploded-graph-rewriter/environment.dot
clang/test/Analysis/exploded-graph-rewriter/environment_diff.dot
clang/test/Analysis/exploded-graph-rewriter/node_labels.dot
clang/test/Analysis/exploded-graph-rewriter/program_points.dot
clang/test/Analysis/exploded-graph-rewriter/store.dot
clang/test/Analysis/exploded-graph-rewriter/store_diff.dot
clang/utils/analyzer/exploded-graph-rewriter.py
|
The fix in test/Analysis/dump_egraph.c is related to this change. Previously multiple nodes in the dump were marked as "has_report": true and the CHECK directives were in a wrong order but went unnoticed.