// RUN: %exploded_graph_rewriter %s | FileCheck %s
// CHECK: <b>Objects Under Construction: </b>
// CHECK-SAME:<table border="0">
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><b>#0 Call</b></td>
// CHECK-SAME: <td align="left" colspan="2">
// CHECK-SAME: <font color="gray60">main </font>
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><i>S870</i></td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: <font color="darkgreen">
// CHECK-SAME: <i>(construct into local variable)</i>
// CHECK-SAME: </font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">S s;</td>
// CHECK-SAME: <td align="left">&s</td>
// CHECK-SAME: </tr>
// CHECK-SAME:</table>
Node0x1 [shape=record,label=
"{
{
"state_id": 2,
"program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
"tag": null, "node_id": 1,
"has_report": 0, "is_sink": 0
}
],
"program_state": {
"store": null,
"environment": null,
"constraints": null,
"equivalence_classes": null,
"disequality_info": null,
"dynamic_types": null,
"dynamic_casts": null,
"constructing_objects": [
{
"lctx_id": 1, "location_context": "#0 Call", "calling": "main", "location": null, "items": [
{ "stmt_id": 870, "kind": "construct into local variable", "argument_index": null, "pretty": "S s;", "value": "&s" }
]
}
],
"checker_messages": null
}
}
\l}"];
// CHECK: <b>Indices Of Elements Under Construction: </b>
// CHECK-SAME:<table border="0">
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><b>#0 Call</b></td>
// CHECK-SAME: <td align="left" colspan="2">
// CHECK-SAME: <font color="gray60">main </font>
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><i>S895</i></td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: <font color="darkgreen"><i> </i></font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: CXXConstructExpr <test.cpp:8:7> 'S[2]'
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">Current index: 0</td>
// CHECK-SAME: </tr>
// CHECK-SAME:</table>
Node0x2 [shape=record,label=
"{
{
"state_id": 2,
"program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
"tag": null, "node_id": 1,
"has_report": 0, "is_sink": 0
}
],
"program_state": {
"store": null,
"environment": null,
"constraints": null,
"equivalence_classes": null,
"disequality_info": null,
"dynamic_types": null,
"dynamic_casts": null,
"index_of_element": [
{
"lctx_id": 1,
"location_context": "#0 Call",
"calling": "main",
"location": null,
"items": [
{
"stmt_id": 895,
"kind": null,
"pretty": "CXXConstructExpr <test.cpp:8:7> 'S[2]'",
"value": "Current index: 0"
}
]
}
],
"checker_messages": null
}
}
\l}"];
// CHECK: <b>Pending Array Init Loop Expressions: </b>
// CHECK-SAME:<table border="0">
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><b>#0 Call</b></td>
// CHECK-SAME: <td align="left" colspan="2">
// CHECK-SAME: <font color="gray60">main </font>
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><i>S1112</i></td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: <font color="darkgreen"><i> </i></font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: CXXConstructExpr <test.cpp:10:6> 'S'
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">Flattened size: 2</td>
// CHECK-SAME: </tr>
// CHECK-SAME:</table>
Node0x3 [shape=record,label=
"{
{
"state_id": 2,
"program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
"tag": null, "node_id": 1,
"has_report": 0, "is_sink": 0
}
],
"program_state": {
"store": null,
"environment": null,
"constraints": null,
"equivalence_classes": null,
"disequality_info": null,
"dynamic_types": null,
"dynamic_casts": null,
"pending_init_loops": [
{
"lctx_id": 1,
"location_context": "#0 Call",
"calling": "main",
"location": null,
"items": [
{
"stmt_id": 1112,
"kind": null,
"pretty": "CXXConstructExpr <test.cpp:10:6> 'S'", "value": "Flattened size: 2"
}
]
}
],
"checker_messages": null
}
}
\l}"];
// CHECK: <b>Indices of Elements Under Destruction: </b>
// CHECK-SAME:<table border="0">
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><b>#0 Call</b></td>
// CHECK-SAME: <td align="left" colspan="2">
// CHECK-SAME: <font color="gray60">main </font>
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
// CHECK-SAME: <tr>
// CHECK-SAME: <td></td>
// CHECK-SAME: <td align="left"><i>SNone</i></td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: <font color="darkgreen"><i> </i></font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">Current index: </td>
// CHECK-SAME: <td align="left">1</td>
// CHECK-SAME: </tr>
// CHECK-SAME:</table>
Node0x4 [shape=record,label=
"{
{
"state_id": 2,
"program_points": [
{
"kind": "BlockEntrance", "block_id": 1,
"terminator": null, "term_kind": null,
"tag": null, "node_id": 1,
"has_report": 0, "is_sink": 0
}
],
"program_state": {
"store": null,
"environment": null,
"constraints": null,
"equivalence_classes": null,
"disequality_info": null,
"dynamic_types": null,
"dynamic_casts": null,
"pending_destructors": [
{
"lctx_id": 1,
"location_context": "#0 Call",
"calling": "main",
"location": null,
"items": [
{
"stmt_id": null,
"kind": null,
"pretty": "Current index: ",
"value": "1"
}
]
}
],
"checker_messages": null
}
}
\l}"];