]> granicus.if.org Git - clang/commitdiff
[analyzer] exploded-graph-rewriter: Fix dump for state 0.
authorArtem Dergachev <artem.dergachev@gmail.com>
Fri, 18 Oct 2019 20:15:32 +0000 (20:15 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Fri, 18 Oct 2019 20:15:32 +0000 (20:15 +0000)
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

test/Analysis/exploded-graph-rewriter/edge.dot
test/Analysis/exploded-graph-rewriter/node_labels.dot
test/Analysis/exploded-graph-rewriter/program_points.dot
test/Analysis/exploded-graph-rewriter/trimmers.dot
utils/analyzer/exploded-graph-rewriter.py

index 3923f1f8ee5b55d414871767926b4dac488e0e31..43d6e3b8faf106838111e68eeb11e069db003d5f 100644 (file)
@@ -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,
index a3d7420fed834c98e922958ba0df5f4bad682392..89d5070deedc476bdfccc68053aa3bec685d0c42 100644 (file)
 // 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,
index c9492757c3affc48eaa2901ffb42808cc8a2442d..bee48d0f49f8c2575739cd5c78962322e2e48601 100644 (file)
@@ -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",
index 2c441e02c72d964373773cc2be898ea83ef06f88..df6270d0ef1e24f44c2c888e29ab4ce07fc2830c 100644 (file)
@@ -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,
index 79222bdbe95dd64d5233c69918f64f58fe5ca8f0..46c0415826a0d28cf6cfcd01a1802d6d0be78b97 100755 (executable)
@@ -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