116236077SArtem Dergachev// RUN: %exploded_graph_rewriter %s | FileCheck %s
216236077SArtem Dergachev
32ca53557SArtem Dergachev// CHECK: <b>Program points:</b>
416236077SArtem Dergachev// CHECK-SAME: <table border="0" align="left" width="0">
516236077SArtem Dergachev// CHECK-SAME:   <tr>
616236077SArtem Dergachev// CHECK-SAME:     <td width="0">
716236077SArtem Dergachev// CHECK-SAME:     </td>
816236077SArtem Dergachev// CHECK-SAME:     <td align="left" width="0">
92ca53557SArtem Dergachev// CHECK-SAME:       <font color="gold3">BlockEdge</font>
1016236077SArtem Dergachev// CHECK-SAME:     </td>
1116236077SArtem Dergachev// CHECK-SAME:     <td align="left">
1216236077SArtem Dergachev// CHECK-SAME:     [B0] -&gt; [B1]
1316236077SArtem Dergachev// CHECK-SAME:     </td>
1416236077SArtem Dergachev// CHECK-SAME:   </tr>
152ca53557SArtem Dergachev// CHECK-SAME:   <tr>
162ca53557SArtem Dergachev// CHECK-SAME:     <td width="0">
172ca53557SArtem Dergachev// CHECK-SAME:     </td>
182ca53557SArtem Dergachev// CHECK-SAME:     <td align="left" width="0">
192ca53557SArtem Dergachev// CHECK-SAME:       <font color="gold3">BlockEntrance</font>
202ca53557SArtem Dergachev// CHECK-SAME:     </td>
212ca53557SArtem Dergachev// CHECK-SAME:     <td align="left">
222ca53557SArtem Dergachev// CHECK-SAME:     [B1]
232ca53557SArtem Dergachev// CHECK-SAME:     </td>
242ca53557SArtem Dergachev// CHECK-SAME:   </tr>
2516236077SArtem Dergachev// CHECK-SAME: </table>
2616236077SArtem DergachevNode0x1 [shape=record,label=
2716236077SArtem Dergachev "{
2814e9eb3dSArtem Dergachev    {
29*d93b810cSArtem Dergachev      "state_id": 0, "program_state": null, "program_points": [
3016236077SArtem Dergachev      {
3116236077SArtem Dergachev        "kind": "Edge",
3216236077SArtem Dergachev        "src_id": 0,
3316236077SArtem Dergachev        "dst_id": 1,
3416236077SArtem Dergachev        "terminator": null,
3516236077SArtem Dergachev        "term_kind": null,
3614e9eb3dSArtem Dergachev        "tag": null,
3714e9eb3dSArtem Dergachev        "node_id": 1,
3814e9eb3dSArtem Dergachev        "has_report": 0,
3914e9eb3dSArtem Dergachev        "is_sink": 0
402ca53557SArtem Dergachev      },
412ca53557SArtem Dergachev      {
422ca53557SArtem Dergachev        "kind": "BlockEntrance",
432ca53557SArtem Dergachev        "block_id": 1,
442ca53557SArtem Dergachev        "terminator": null,
452ca53557SArtem Dergachev        "term_kind": null,
4614e9eb3dSArtem Dergachev        "tag": null,
4714e9eb3dSArtem Dergachev        "node_id": 2,
4814e9eb3dSArtem Dergachev        "has_report": 0,
4914e9eb3dSArtem Dergachev        "is_sink": 0
502ca53557SArtem Dergachev      }
5116236077SArtem Dergachev    ]}
5216236077SArtem Dergachev\l}"];
5316236077SArtem Dergachev
5416236077SArtem Dergachev// CHECK-NEXT: <b>Program point:</b>
5516236077SArtem Dergachev// CHECK-SAME: <table border="0" align="left" width="0">
5616236077SArtem Dergachev// CHECK-SAME:   <tr>
5716236077SArtem Dergachev// CHECK-SAME:     <td align="left" width="0">
58fc6059e8SArtem Dergachev// CHECK-SAME:       main.cpp:<b>4</b>:<b>5</b>:
5916236077SArtem Dergachev// CHECK-SAME:     </td>
6016236077SArtem Dergachev// CHECK-SAME:     <td align="left" width="0">
612ca53557SArtem Dergachev// CHECK-SAME:       <font color="cyan4">DeclRefExpr</font>
622ca53557SArtem Dergachev// CHECK-SAME:     </td>
63ed035ff8SArtem Dergachev// CHECK-SAME:     <td align="left"><i>S3</i></td>
642ca53557SArtem Dergachev// CHECK-SAME:     <td align="left">
652ca53557SArtem Dergachev// CHECK-SAME:       <font color="cyan3">PreStmt</font>
6616236077SArtem Dergachev// CHECK-SAME:     </td>
67ed035ff8SArtem Dergachev// CHECK-SAME:     <td align="left">x</td>
6816236077SArtem Dergachev// CHECK-SAME:   </tr>
695a72338bSArtem Dergachev// CHECK-SAME:   <tr>
705a72338bSArtem Dergachev// CHECK-SAME:     <td width="0">
715a72338bSArtem Dergachev// CHECK-SAME:     </td>
722ca53557SArtem Dergachev// CHECK-SAME:     <td colspan="3" align="left">
735a72338bSArtem Dergachev// CHECK-SAME:       <b>Tag: </b>
745a72338bSArtem Dergachev// CHECK-SAME:       <font color="crimson">ExprEngine : Clean Node</font>
755a72338bSArtem Dergachev// CHECK-SAME:     </td>
765a72338bSArtem Dergachev// CHECK-SAME:   </tr>
7716236077SArtem Dergachev// CHECK-SAME: </table>
7814e9eb3dSArtem DergachevNode0x3 [shape=record,label=
7916236077SArtem Dergachev "{
80*d93b810cSArtem Dergachev    { "state_id": 0, "program_state": null, "program_points": [
8116236077SArtem Dergachev      {
8216236077SArtem Dergachev        "kind": "Statement",
8316236077SArtem Dergachev        "stmt_kind": "DeclRefExpr",
842ca53557SArtem Dergachev        "stmt_point_kind": "PreStmt",
85ed035ff8SArtem Dergachev        "stmt_id": 3,
8616236077SArtem Dergachev        "pointer": "0x3",
8716236077SArtem Dergachev        "pretty": "x",
8816236077SArtem Dergachev        "location": {
89fc6059e8SArtem Dergachev          "file": "main.cpp",
9016236077SArtem Dergachev          "line": 4,
9116236077SArtem Dergachev          "column": 5
9216236077SArtem Dergachev        },
9314e9eb3dSArtem Dergachev        "tag": "ExprEngine : Clean Node",
9414e9eb3dSArtem Dergachev        "node_id": 3,
9514e9eb3dSArtem Dergachev        "pointer": "0x3",
9614e9eb3dSArtem Dergachev        "has_report": 0,
9714e9eb3dSArtem Dergachev        "is_sink": 0
9816236077SArtem Dergachev      }
9916236077SArtem Dergachev    ]}
10016236077SArtem Dergachev\l}"];
10148a5c83aSArtem Dergachev
10248a5c83aSArtem Dergachev// Test collapsing large pretty prints with braces.
10348a5c83aSArtem Dergachev
10448a5c83aSArtem Dergachev// CHECK-NEXT: <b>Program point:</b>
105ed035ff8SArtem Dergachev// CHECK-SAME: <td align="left">\{ ... \}</td>
10614e9eb3dSArtem DergachevNode0x4 [shape=record,label=
10748a5c83aSArtem Dergachev "{
10814e9eb3dSArtem Dergachev    {
109*d93b810cSArtem Dergachev      "state_id": 0, "program_state": null, "program_points": [
11048a5c83aSArtem Dergachev      {
11148a5c83aSArtem Dergachev        "kind": "Statement",
11248a5c83aSArtem Dergachev        "stmt_kind": "CompoundStmt",
11348a5c83aSArtem Dergachev        "stmt_point_kind": "PostStmt",
114ed035ff8SArtem Dergachev        "stmt_id": 6,
11548a5c83aSArtem Dergachev        "pointer": "0x6",
11648a5c83aSArtem Dergachev        "pretty": "{ very very very very very very long pretty print }",
11748a5c83aSArtem Dergachev        "location": {
11848a5c83aSArtem Dergachev          "line": 7,
11948a5c83aSArtem Dergachev          "column": 8
12048a5c83aSArtem Dergachev        },
12114e9eb3dSArtem Dergachev        "tag": "ExprEngine : Clean Node",
12214e9eb3dSArtem Dergachev        "node_id": 4,
12314e9eb3dSArtem Dergachev        "has_report": 0,
12414e9eb3dSArtem Dergachev        "is_sink": 0
12548a5c83aSArtem Dergachev      }
12648a5c83aSArtem Dergachev    ]}
12748a5c83aSArtem Dergachev\l}"];
128d325196fSArtem Dergachev
129d325196fSArtem Dergachev// CHECK-NEXT: <b>Program point:</b>
130d325196fSArtem Dergachev// CHECK-SAME: <table border="0" align="left" width="0">
131d325196fSArtem Dergachev// CHECK-SAME:   <tr>
132d325196fSArtem Dergachev// CHECK-SAME:     <td align="left" width="0">
133d325196fSArtem Dergachev// CHECK-SAME:       main.cpp:<b>8</b>:<b>9</b>:
134d325196fSArtem Dergachev// CHECK-SAME:     </td>
135d325196fSArtem Dergachev// CHECK-SAME:     <td align="left" width="0">
136d325196fSArtem Dergachev// CHECK-SAME:       <font color="cyan4">
137d325196fSArtem Dergachev// CHECK-SAME:         ImplicitCastExpr (LValueToRValue)
138d325196fSArtem Dergachev// CHECK-SAME:       </font>
139d325196fSArtem Dergachev// CHECK-SAME:     </td>
140d325196fSArtem Dergachev// CHECK-SAME:     <td align="left"><i>S5</i></td>
141d325196fSArtem Dergachev// CHECK-SAME:     <td align="left">
142d325196fSArtem Dergachev// CHECK-SAME:       <font color="cyan3">PreStmt</font>
143d325196fSArtem Dergachev// CHECK-SAME:     </td>
144d325196fSArtem Dergachev// CHECK-SAME:     <td align="left">y</td>
145d325196fSArtem Dergachev// CHECK-SAME:   </tr>
146d325196fSArtem Dergachev// CHECK-SAME:   <tr>
147d325196fSArtem Dergachev// CHECK-SAME:     <td width="0">
148d325196fSArtem Dergachev// CHECK-SAME:     </td>
149d325196fSArtem Dergachev// CHECK-SAME:     <td colspan="3" align="left">
150d325196fSArtem Dergachev// CHECK-SAME:       <b>Tag: </b>
151d325196fSArtem Dergachev// CHECK-SAME:       <font color="crimson">ExprEngine : Clean Node</font>
152d325196fSArtem Dergachev// CHECK-SAME:     </td>
153d325196fSArtem Dergachev// CHECK-SAME:   </tr>
154d325196fSArtem Dergachev// CHECK-SAME: </table>
15514e9eb3dSArtem DergachevNode0x5 [shape=record,label=
156d325196fSArtem Dergachev "{
157*d93b810cSArtem Dergachev    { "state_id": 0, "program_state": null, "program_points": [
158d325196fSArtem Dergachev      {
159d325196fSArtem Dergachev        "kind": "Statement",
160d325196fSArtem Dergachev        "stmt_kind": "ImplicitCastExpr",
161d325196fSArtem Dergachev        "cast_kind": "LValueToRValue",
162d325196fSArtem Dergachev        "stmt_point_kind": "PreStmt",
163d325196fSArtem Dergachev        "stmt_id": 5,
164d325196fSArtem Dergachev        "pointer": "0x6",
165d325196fSArtem Dergachev        "pretty": "y",
166d325196fSArtem Dergachev        "location": {
167d325196fSArtem Dergachev          "file": "main.cpp",
168d325196fSArtem Dergachev          "line": 8,
169d325196fSArtem Dergachev          "column": 9
170d325196fSArtem Dergachev        },
17114e9eb3dSArtem Dergachev        "tag": "ExprEngine : Clean Node",
17214e9eb3dSArtem Dergachev        "node_id": 5,
17314e9eb3dSArtem Dergachev        "has_report": 0,
17414e9eb3dSArtem Dergachev        "is_sink": 0
175d325196fSArtem Dergachev      }
176d325196fSArtem Dergachev    ]}
177d325196fSArtem Dergachev\l}"];
178