1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
// RUN: %exploded_graph_rewriter %s | FileCheck %s
// FIXME: Substitution doesn't seem to work on Windows.
// UNSUPPORTED: system-windows
// CHECK: <b>Program points:</b>
// CHECK-SAME: <table border="0" align="left" width="0">
// CHECK-SAME: <tr>
// CHECK-SAME: <td width="0">
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left" width="0">
// CHECK-SAME: <font color="gold3">BlockEdge</font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: [B0] -> [B1]
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
// CHECK-SAME: <tr>
// CHECK-SAME: <td width="0">
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left" width="0">
// CHECK-SAME: <font color="gold3">BlockEntrance</font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: [B1]
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
// CHECK-SAME: </table>
Node0x1 [shape=record,label=
"{
{ "node_id": 1, "pointer": "0x1", "has_report": false, "is_sink": false,
"program_state": null, "program_points": [
{
"kind": "Edge",
"src_id": 0,
"dst_id": 1,
"terminator": null,
"term_kind": null,
"tag": null
},
{
"kind": "BlockEntrance",
"block_id": 1,
"terminator": null,
"term_kind": null,
"tag": null
}
]}
\l}"];
// CHECK-NEXT: <b>Program point:</b>
// CHECK-SAME: <table border="0" align="left" width="0">
// CHECK-SAME: <tr>
// CHECK-SAME: <td align="left" width="0">
// CHECK-SAME: main.cpp:<b>4</b>:<b>5</b>:
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left" width="0">
// CHECK-SAME: <font color="cyan4">DeclRefExpr</font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left"><i>S3</i></td>
// CHECK-SAME: <td align="left">
// CHECK-SAME: <font color="cyan3">PreStmt</font>
// CHECK-SAME: </td>
// CHECK-SAME: <td align="left">x</td>
// CHECK-SAME: </tr>
// CHECK-SAME: <tr>
// CHECK-SAME: <td width="0">
// CHECK-SAME: </td>
// CHECK-SAME: <td colspan="3" align="left">
// CHECK-SAME: <b>Tag: </b>
// CHECK-SAME: <font color="crimson">ExprEngine : Clean Node</font>
// CHECK-SAME: </td>
// CHECK-SAME: </tr>
// CHECK-SAME: </table>
Node0x2 [shape=record,label=
"{
{ "node_id": 2, "pointer": "0x2", "has_report": false, "is_sink": false,
"program_state": null, "program_points": [
{
"kind": "Statement",
"stmt_kind": "DeclRefExpr",
"stmt_point_kind": "PreStmt",
"stmt_id": 3,
"pointer": "0x3",
"pretty": "x",
"location": {
"file": "main.cpp",
"line": 4,
"column": 5
},
"tag": "ExprEngine : Clean Node"
}
]}
\l}"];
// Test collapsing large pretty prints with braces.
// CHECK-NEXT: <b>Program point:</b>
// CHECK-SAME: <td align="left">\{ ... \}</td>
Node0x3 [shape=record,label=
"{
{ "node_id": 3, "pointer": "0x3", "has_report": false, "is_sink": false,
"program_state": null, "program_points": [
{
"kind": "Statement",
"stmt_kind": "CompoundStmt",
"stmt_point_kind": "PostStmt",
"stmt_id": 6,
"pointer": "0x6",
"pretty": "{ very very very very very very long pretty print }",
"location": {
"line": 7,
"column": 8
},
"tag": "ExprEngine : Clean Node"
}
]}
\l}"];
|