diff options
author | Artem Dergachev <artem.dergachev@gmail.com> | 2019-10-18 20:15:32 +0000 |
---|---|---|
committer | Artem Dergachev <artem.dergachev@gmail.com> | 2019-10-18 20:15:32 +0000 |
commit | f094784d9e40d20777eb5b7d17830f02864cfd2b (patch) | |
tree | d695e09caa20472d15bb4f7b45566c0687dd9365 | |
parent | 0836645ecf90c2813830bb68ef74d8be7b67a8a2 (diff) | |
download | clang-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
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 |