From: Artem Dergachev Date: Fri, 18 Oct 2019 20:15:32 +0000 (+0000) Subject: [analyzer] exploded-graph-rewriter: Fix dump for state 0. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f094784d9e40d20777eb5b7d17830f02864cfd2b;p=clang [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 --- 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: // LIGHT-SAME: // DARK-SAME: -// CHECK-SAME: State Unspecified +// CHECK-SAME: State 0 // CHECK-SAME: // CHECK-SAME: 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: 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: 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: 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