diff options
| author | Artem Dergachev <artem.dergachev@gmail.com> | 2019-06-25 02:16:53 +0000 |
|---|---|---|
| committer | Artem Dergachev <artem.dergachev@gmail.com> | 2019-06-25 02:16:53 +0000 |
| commit | beb85ad66de5af11e45bae236a3dd5a6a4762150 (patch) | |
| tree | 49433d897ee48c183699cb06861ab1894a663b5d /clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot | |
| parent | b9c94f946f2ca45734af666d6afba0234b21411b (diff) | |
| download | bcm5719-llvm-beb85ad66de5af11e45bae236a3dd5a6a4762150.tar.gz bcm5719-llvm-beb85ad66de5af11e45bae236a3dd5a6a4762150.zip | |
[analyzer] exploded-graph-rewriter: Add support for range constraints.
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
llvm-svn: 364268
Diffstat (limited to 'clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot')
| -rw-r--r-- | clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot b/clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot new file mode 100644 index 00000000000..a65a3a2464c --- /dev/null +++ b/clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot @@ -0,0 +1,65 @@ +// RUN: %exploded_graph_rewriter -d %s | FileCheck %s + +// FIXME: Substitution doesn't seem to work on Windows. +// UNSUPPORTED: system-windows + +Node0x1 [shape=record,label= + "{ + { "node_id": 1, + "pointer": "0x1", + "state_id": 2, + "program_points": [], + "program_state": { + "store": null, + "environment": null, + "constraints": [ + { "symbol": "reg_$0<x>", "range": "{ [0, 10] }" } + ] + } + } +\l}"]; + +Node0x1 -> Node0x3; + +// CHECK: Node0x3 [ +// CHECK-SAME: <tr> +// CHECK-SAME: <td><font color="red">-</font></td> +// CHECK-SAME: <td align="left">reg_$0<x></td> +// CHECK-SAME: <td align="left">\{ [0, 10] \}</td> +// CHECK-SAME: </tr> +// CHECK-SAME: <tr> +// CHECK-SAME: <td><font color="forestgreen">+</font></td> +// CHECK-SAME: <td align="left">reg_$0<x></td> +// CHECK-SAME: <td align="left">\{ [0, 5] \}</td> +// CHECK-SAME: </tr> +Node0x3 [shape=record,label= + "{ + { "node_id": 3, + "pointer": "0x3", + "state_id": 4, + "program_points": [], + "program_state": { + "store": null, + "environment": null, + "constraints": [ + { "symbol": "reg_$0<x>", "range": "{ [0, 5] }" } + ] + } + } +\l}"]; + +Node0x3 -> Node0x5; + +Node0x5 [shape=record,label= + "{ + { "node_id": 5, + "pointer": "0x5", + "state_id": 6, + "program_points": [], + "program_state": { + "store": null, + "environment": null, + "constraints": null + } + } +\l}"]; |

