summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2019-10-18 20:15:32 +0000
committerArtem Dergachev <artem.dergachev@gmail.com>2019-10-18 20:15:32 +0000
commitf094784d9e40d20777eb5b7d17830f02864cfd2b (patch)
treed695e09caa20472d15bb4f7b45566c0687dd9365
parent0836645ecf90c2813830bb68ef74d8be7b67a8a2 (diff)
downloadclang-f094784d9e40d20777eb5b7d17830f02864cfd2b.tar.gz
[analyzer] exploded-graph-rewriter: Fix dump for state 0.
It shouldn't say "unspecified" when the state is specified to be empty. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@375279 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Analysis/exploded-graph-rewriter/edge.dot4
-rw-r--r--test/Analysis/exploded-graph-rewriter/node_labels.dot7
-rw-r--r--test/Analysis/exploded-graph-rewriter/program_points.dot8
-rw-r--r--test/Analysis/exploded-graph-rewriter/trimmers.dot8
-rwxr-xr-xutils/analyzer/exploded-graph-rewriter.py14
5 files changed, 25 insertions, 16 deletions
diff --git a/test/Analysis/exploded-graph-rewriter/edge.dot b/test/Analysis/exploded-graph-rewriter/edge.dot
index 3923f1f8ee..43d6e3b8fa 100644
--- a/test/Analysis/exploded-graph-rewriter/edge.dot
+++ b/test/Analysis/exploded-graph-rewriter/edge.dot
@@ -5,7 +5,7 @@
// UNSUPPORTED: system-windows
Node0x1 [shape=record,label=
- "{{ "program_state": null, "program_points": [
+ "{{ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
@@ -19,7 +19,7 @@ Node0x1 [shape=record,label=
Node0x1 -> Node0x2;
Node0x2 [shape=record,label=
- "{{ "program_state": null, "program_points": [
+ "{{ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
diff --git a/test/Analysis/exploded-graph-rewriter/node_labels.dot b/test/Analysis/exploded-graph-rewriter/node_labels.dot
index a3d7420fed..89d5070dee 100644
--- a/test/Analysis/exploded-graph-rewriter/node_labels.dot
+++ b/test/Analysis/exploded-graph-rewriter/node_labels.dot
@@ -15,13 +15,12 @@
// CHECK-SAME: <tr>
// LIGHT-SAME: <td bgcolor="gray70">
// DARK-SAME: <td bgcolor="gray20">
-// CHECK-SAME: <b>State Unspecified</b>
+// CHECK-SAME: <b>State 0</b>
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
Node0x1 [shape=record,label=
"{
- { "node_id": 1, "pointer": "0x1", "has_report": false, "is_sink": false,
- "program_state": null,
+ { "state_id": 0, "program_state": null,
"program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
@@ -48,7 +47,7 @@ Node0x1 [shape=record,label=
// CHECK-SAME: </tr>
Node0x2 [shape=record,label=
"{
- { "program_state": null,
+ { "state_id": 0, "program_state": null,
"program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
diff --git a/test/Analysis/exploded-graph-rewriter/program_points.dot b/test/Analysis/exploded-graph-rewriter/program_points.dot
index c9492757c3..bee48d0f49 100644
--- a/test/Analysis/exploded-graph-rewriter/program_points.dot
+++ b/test/Analysis/exploded-graph-rewriter/program_points.dot
@@ -29,7 +29,7 @@
Node0x1 [shape=record,label=
"{
{
- "program_state": null, "program_points": [
+ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "Edge",
"src_id": 0,
@@ -80,7 +80,7 @@ Node0x1 [shape=record,label=
// CHECK-SAME: </table>
Node0x3 [shape=record,label=
"{
- { "program_state": null, "program_points": [
+ { "state_id": 0, "program_state": null, "program_points": [
{
"kind": "Statement",
"stmt_kind": "DeclRefExpr",
@@ -109,7 +109,7 @@ Node0x3 [shape=record,label=
Node0x4 [shape=record,label=
"{
{
- "program_state": null, "program_points": [
+ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "Statement",
"stmt_kind": "CompoundStmt",
@@ -157,7 +157,7 @@ Node0x4 [shape=record,label=
// CHECK-SAME: </table>
Node0x5 [shape=record,label=
"{
- { "program_state": null, "program_points": [
+ { "state_id": 0, "program_state": null, "program_points": [
{
"kind": "Statement",
"stmt_kind": "ImplicitCastExpr",
diff --git a/test/Analysis/exploded-graph-rewriter/trimmers.dot b/test/Analysis/exploded-graph-rewriter/trimmers.dot
index 2c441e02c7..df6270d0ef 100644
--- a/test/Analysis/exploded-graph-rewriter/trimmers.dot
+++ b/test/Analysis/exploded-graph-rewriter/trimmers.dot
@@ -17,7 +17,7 @@
// UNSUPPORTED: system-windows
Node0x1 [shape=record,label=
- "{{ "program_state": null, "program_points": [
+ "{{ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
@@ -27,7 +27,7 @@ Node0x1 [shape=record,label=
]}\l}"];
Node0x2 [shape=record,label=
- "{{ "program_state": null, "program_points": [
+ "{{ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
@@ -37,7 +37,7 @@ Node0x2 [shape=record,label=
]}\l}"];
Node0x3 [shape=record,label=
- "{{ "program_state": null, "program_points": [
+ "{{ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
@@ -47,7 +47,7 @@ Node0x3 [shape=record,label=
]}\l}"];
Node0x4 [shape=record,label=
- "{{ "program_state": null, "program_points": [
+ "{{ "state_id": 0, "program_state": null, "program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
diff --git a/utils/analyzer/exploded-graph-rewriter.py b/utils/analyzer/exploded-graph-rewriter.py
index 79222bdbe9..46c0415826 100755
--- a/utils/analyzer/exploded-graph-rewriter.py
+++ b/utils/analyzer/exploded-graph-rewriter.py
@@ -273,6 +273,16 @@ class ProgramState(object):
super(ProgramState, self).__init__()
logging.debug('Adding ProgramState ' + str(state_id))
+ if json_ps is None:
+ json_ps = {
+ 'store': None,
+ 'environment': None,
+ 'constraints': None,
+ 'dynamic_types': None,
+ 'constructing_objects': None,
+ 'checker_messages': None
+ }
+
self.state_id = state_id
self.store = Store(json_ps['store']) \
@@ -316,8 +326,8 @@ class ExplodedNode(object):
self.points = [ProgramPoint(p) for p in json_node['program_points']]
self.node_id = self.points[-1].node_id
self.state = ProgramState(json_node['state_id'],
- json_node['program_state']) \
- if json_node['program_state'] is not None else None
+ json_node['program_state']
+ if json_node['program_state'] is not None else None);
assert self.node_name() == node_id