summaryrefslogtreecommitdiff
path: root/test/Analysis/exploded-graph-rewriter/environment_diff.dot
Commit message (Collapse)AuthorAgeFilesLines
* [analyzer] Assign truly stable identifiers to exploded nodes.Artem Dergachev2019-10-171-15/+27
| | | | | | | | | | | ExplodedGraph nodes will now have a numeric identifier stored in them which will keep track of the order in which the nodes were created and it will be fully deterministic both accross runs and across machines. This is extremely useful for debugging as it allows reliably setting conditional breakpoints by node IDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@375186 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] exploded-graph-rewriter: Improve source location dumps.Artem Dergachev2019-07-121-3/+3
| | | | | | | | - Correctly display macro expansion and spelling locations. - Use the same procedure to display location context call site locations. - Display statement IDs for program points. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@365861 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] exploded-graph-rewriter: Implement bug nodes and sink nodes.Artem Dergachev2019-07-031-0/+6
| | | | | | | | | | | 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. Differential Revision: https://reviews.llvm.org/D64110 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@364992 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] exploded-graph-rewriter: Implement checker messages.Artem Dergachev2019-07-031-0/+3
| | | | | | | | They are displayed as raw lines and diffed via difflib on a per-checker basis. Differential Revision: https://reviews.llvm.org/D64100 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@364989 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] exploded-graph-rewriter: Add support for objects under construction.Artem Dergachev2019-07-021-0/+3
| | | | | | | | This trait is Environment-like, so there was a chance to re-use a lot of code. Differential Revision: https://reviews.llvm.org/D64047 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@364880 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] exploded-graph-rewriter: Add support for dynamic types.Artem Dergachev2019-07-011-0/+3
| | | | | | | | | Slightly cleanup emission of horizontal lines and unhardcode the title for generic maps. Differential Revision: https://reviews.llvm.org/D64041 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@364865 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] print() JSONify: Create pointersCsaba Dabis2019-06-251-45/+54
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ Reviewed By: NoQ Subscribers: xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63726 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@364271 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] exploded-graph-rewriter: Add support for range constraints.Artem Dergachev2019-06-251-0/+3
| | | | | | | | | | | | Diff support included. A cheap solution is implemented that treats range constraints as "some sort of key-value map", so it's going to be trivial to add support for other such maps later, such as dynamic type info. Differential Revision: https://reviews.llvm.org/D63685 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@364268 91177308-0d34-0410-b5e6-96231b3b80d8
* [analyzer] exploded-graph-rewriter: Implement a --diff mode.Artem Dergachev2019-06-191-0/+110
In this mode the tool would avoid duplicating the contents of the program state on every node, replacing them with a diff-like dump of changes that happened on that node. This is useful because most of the time we only interested in whether the effect of the statement was modeled correctly. A diffed graph would also be much faster to load and navigate, being much smaller than the original graph. The diffs are computed "semantically" as opposed to plain text diffs. I.e., the diff algorithm is hand-crafted separately for every state trait, taking the underlying data structures into account. This is especially nice for Environment because textual diffs would have been terrible. On the other hand, it requires some boilerplate to implement. Differential Revision: https://reviews.llvm.org/D62761 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363898 91177308-0d34-0410-b5e6-96231b3b80d8