xref: /llvm-project/clang/test/Analysis/exploded-graph-rewriter/program_state_traits.dot (revision b5147937b2a9ffdc12110a5df5ba4d482f83d2a8)
1// RUN: %exploded_graph_rewriter %s | FileCheck %s
2
3// CHECK: <b>Objects Under Construction: </b>
4// CHECK-SAME:<table border="0">
5// CHECK-SAME:  <tr>
6// CHECK-SAME:    <td></td>
7// CHECK-SAME:    <td align="left"><b>#0 Call</b></td>
8// CHECK-SAME:    <td align="left" colspan="2">
9// CHECK-SAME:      <font color="gray60">main </font>
10// CHECK-SAME:    </td>
11// CHECK-SAME:  </tr>
12// CHECK-SAME:  <tr>
13// CHECK-SAME:    <td></td>
14// CHECK-SAME:    <td align="left"><i>S870</i></td>
15// CHECK-SAME:    <td align="left">
16// CHECK-SAME:      <font color="darkgreen">
17// CHECK-SAME:          <i>(construct into local variable)</i>
18// CHECK-SAME:      </font>
19// CHECK-SAME:    </td>
20// CHECK-SAME:    <td align="left">S s;</td>
21// CHECK-SAME:    <td align="left">&amp;s</td>
22// CHECK-SAME:  </tr>
23// CHECK-SAME:</table>
24Node0x1 [shape=record,label=
25"{
26    {
27        "state_id": 2,
28        "program_points": [
29            {
30                "kind": "BlockEntrance", "block_id": 1,
31                "terminator": null, "term_kind": null,
32                "tag": null, "node_id": 1,
33                "has_report": 0, "is_sink": 0
34            }
35        ],
36        "program_state": {
37            "store": null,
38            "environment": null,
39            "constraints": null,
40            "equivalence_classes": null,
41            "disequality_info": null,
42            "dynamic_types": null,
43            "dynamic_casts": null,
44            "constructing_objects": [
45                {
46                    "lctx_id": 1, "location_context": "#0 Call", "calling": "main", "location": null, "items": [
47                        { "stmt_id": 870, "kind": "construct into local variable", "argument_index": null, "pretty": "S s;", "value": "&s" }
48                    ]
49                }
50            ],
51            "checker_messages": null
52        }
53    }
54\l}"];
55
56// CHECK: <b>Indices Of Elements Under Construction: </b>
57// CHECK-SAME:<table border="0">
58// CHECK-SAME:  <tr>
59// CHECK-SAME:    <td></td>
60// CHECK-SAME:    <td align="left"><b>#0 Call</b></td>
61// CHECK-SAME:    <td align="left" colspan="2">
62// CHECK-SAME:      <font color="gray60">main </font>
63// CHECK-SAME:    </td>
64// CHECK-SAME:  </tr>
65// CHECK-SAME:  <tr>
66// CHECK-SAME:    <td></td>
67// CHECK-SAME:    <td align="left"><i>S895</i></td>
68// CHECK-SAME:    <td align="left">
69// CHECK-SAME:      <font color="darkgreen"><i> </i></font>
70// CHECK-SAME:    </td>
71// CHECK-SAME:    <td align="left">
72// CHECK-SAME:      CXXConstructExpr <test.cpp:8:7> 'S[2]'
73// CHECK-SAME:    </td>
74// CHECK-SAME:    <td align="left">Current index: 0</td>
75// CHECK-SAME:  </tr>
76// CHECK-SAME:</table>
77Node0x2 [shape=record,label=
78"{
79    {
80        "state_id": 2,
81        "program_points": [
82            {
83                "kind": "BlockEntrance", "block_id": 1,
84                "terminator": null, "term_kind": null,
85                "tag": null, "node_id": 1,
86                "has_report": 0, "is_sink": 0
87            }
88        ],
89        "program_state": {
90            "store": null,
91            "environment": null,
92            "constraints": null,
93            "equivalence_classes": null,
94            "disequality_info": null,
95            "dynamic_types": null,
96            "dynamic_casts": null,
97            "index_of_element": [
98                {
99                    "lctx_id": 1,
100                    "location_context": "#0 Call",
101                    "calling": "main",
102                    "location": null,
103                    "items": [
104                        {
105                            "stmt_id": 895,
106                            "kind": null,
107                            "pretty": "CXXConstructExpr <test.cpp:8:7> 'S[2]'",
108                            "value": "Current index: 0"
109                        }
110                    ]
111                }
112            ],
113            "checker_messages": null
114        }
115    }
116\l}"];
117
118// CHECK: <b>Pending Array Init Loop Expressions: </b>
119// CHECK-SAME:<table border="0">
120// CHECK-SAME:  <tr>
121// CHECK-SAME:    <td></td>
122// CHECK-SAME:    <td align="left"><b>#0 Call</b></td>
123// CHECK-SAME:    <td align="left" colspan="2">
124// CHECK-SAME:        <font color="gray60">main </font>
125// CHECK-SAME:    </td>
126// CHECK-SAME:  </tr>
127// CHECK-SAME:  <tr>
128// CHECK-SAME:    <td></td>
129// CHECK-SAME:    <td align="left"><i>S1112</i></td>
130// CHECK-SAME:    <td align="left">
131// CHECK-SAME:        <font color="darkgreen"><i> </i></font>
132// CHECK-SAME:    </td>
133// CHECK-SAME:    <td align="left">
134// CHECK-SAME:        CXXConstructExpr <test.cpp:10:6> 'S'
135// CHECK-SAME:    </td>
136// CHECK-SAME:    <td align="left">Flattened size: 2</td>
137// CHECK-SAME:  </tr>
138// CHECK-SAME:</table>
139Node0x3 [shape=record,label=
140"{
141    {
142        "state_id": 2,
143        "program_points": [
144            {
145                "kind": "BlockEntrance", "block_id": 1,
146                "terminator": null, "term_kind": null,
147                "tag": null, "node_id": 1,
148                "has_report": 0, "is_sink": 0
149            }
150        ],
151        "program_state": {
152            "store": null,
153            "environment": null,
154            "constraints": null,
155            "equivalence_classes": null,
156            "disequality_info": null,
157            "dynamic_types": null,
158            "dynamic_casts": null,
159            "pending_init_loops": [
160                {
161                    "lctx_id": 1,
162                    "location_context": "#0 Call",
163                    "calling": "main",
164                    "location": null,
165                    "items": [
166                        {
167                            "stmt_id": 1112,
168                            "kind": null,
169                            "pretty": "CXXConstructExpr <test.cpp:10:6> 'S'", "value": "Flattened size: 2"
170                        }
171                    ]
172                }
173            ],
174            "checker_messages": null
175        }
176    }
177\l}"];
178
179// CHECK: <b>Indices of Elements Under Destruction: </b>
180// CHECK-SAME:<table border="0">
181// CHECK-SAME:  <tr>
182// CHECK-SAME:    <td></td>
183// CHECK-SAME:    <td align="left"><b>#0 Call</b></td>
184// CHECK-SAME:    <td align="left" colspan="2">
185// CHECK-SAME:        <font color="gray60">main </font>
186// CHECK-SAME:    </td>
187// CHECK-SAME:  </tr>
188// CHECK-SAME:  <tr>
189// CHECK-SAME:    <td></td>
190// CHECK-SAME:    <td align="left"><i>SNone</i></td>
191// CHECK-SAME:    <td align="left">
192// CHECK-SAME:        <font color="darkgreen"><i> </i></font>
193// CHECK-SAME:    </td>
194// CHECK-SAME:    <td align="left">Current index: </td>
195// CHECK-SAME:    <td align="left">1</td>
196// CHECK-SAME:  </tr>
197// CHECK-SAME:</table>
198Node0x4 [shape=record,label=
199"{
200    {
201        "state_id": 2,
202        "program_points": [
203            {
204                "kind": "BlockEntrance", "block_id": 1,
205                "terminator": null, "term_kind": null,
206                "tag": null, "node_id": 1,
207                "has_report": 0, "is_sink": 0
208            }
209        ],
210        "program_state": {
211            "store": null,
212            "environment": null,
213            "constraints": null,
214            "equivalence_classes": null,
215            "disequality_info": null,
216            "dynamic_types": null,
217            "dynamic_casts": null,
218            "pending_destructors": [
219                {
220                    "lctx_id": 1,
221                    "location_context": "#0 Call",
222                    "calling": "main",
223                    "location": null,
224                    "items": [
225                        {
226                            "stmt_id": null,
227                            "kind": null,
228                            "pretty": "Current index: ",
229                            "value": "1"
230                        }
231                    ]
232                }
233            ],
234            "checker_messages": null
235        }
236    }
237\l}"];
238