This patch dumps every state trait in the egraph. Also the empty state traits are no longer dumped, instead they are treated as null by the egraph rewriter script, which solves reverse compatibility issues. Differential Revision: https://reviews.llvm.org/D131187
238 lines
7.6 KiB
Plaintext
238 lines
7.6 KiB
Plaintext
// 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}"];
|