1// RUN: %exploded_graph_rewriter %s | FileCheck %s 2 3// CHECK: <b>Program points:</b> 4// CHECK-SAME: <table border="0" align="left" width="0"> 5// CHECK-SAME: <tr> 6// CHECK-SAME: <td width="0"> 7// CHECK-SAME: </td> 8// CHECK-SAME: <td align="left" width="0"> 9// CHECK-SAME: <font color="gold3">BlockEdge</font> 10// CHECK-SAME: </td> 11// CHECK-SAME: <td align="left"> 12// CHECK-SAME: [B0] -> [B1] 13// CHECK-SAME: </td> 14// CHECK-SAME: </tr> 15// CHECK-SAME: <tr> 16// CHECK-SAME: <td width="0"> 17// CHECK-SAME: </td> 18// CHECK-SAME: <td align="left" width="0"> 19// CHECK-SAME: <font color="gold3">BlockEntrance</font> 20// CHECK-SAME: </td> 21// CHECK-SAME: <td align="left"> 22// CHECK-SAME: [B1] 23// CHECK-SAME: </td> 24// CHECK-SAME: </tr> 25// CHECK-SAME: </table> 26Node0x1 [shape=record,label= 27 "{ 28 { 29 "state_id": 0, "program_state": null, "program_points": [ 30 { 31 "kind": "Edge", 32 "src_id": 0, 33 "dst_id": 1, 34 "terminator": null, 35 "term_kind": null, 36 "tag": null, 37 "node_id": 1, 38 "has_report": 0, 39 "is_sink": 0 40 }, 41 { 42 "kind": "BlockEntrance", 43 "block_id": 1, 44 "terminator": null, 45 "term_kind": null, 46 "tag": null, 47 "node_id": 2, 48 "has_report": 0, 49 "is_sink": 0 50 } 51 ]} 52\l}"]; 53 54// CHECK-NEXT: <b>Program point:</b> 55// CHECK-SAME: <table border="0" align="left" width="0"> 56// CHECK-SAME: <tr> 57// CHECK-SAME: <td align="left" width="0"> 58// CHECK-SAME: main.cpp:<b>4</b>:<b>5</b>: 59// CHECK-SAME: </td> 60// CHECK-SAME: <td align="left" width="0"> 61// CHECK-SAME: <font color="cyan4">DeclRefExpr</font> 62// CHECK-SAME: </td> 63// CHECK-SAME: <td align="left"><i>S3</i></td> 64// CHECK-SAME: <td align="left"> 65// CHECK-SAME: <font color="cyan3">PreStmt</font> 66// CHECK-SAME: </td> 67// CHECK-SAME: <td align="left">x</td> 68// CHECK-SAME: </tr> 69// CHECK-SAME: <tr> 70// CHECK-SAME: <td width="0"> 71// CHECK-SAME: </td> 72// CHECK-SAME: <td colspan="3" align="left"> 73// CHECK-SAME: <b>Tag: </b> 74// CHECK-SAME: <font color="crimson">ExprEngine : Clean Node</font> 75// CHECK-SAME: </td> 76// CHECK-SAME: </tr> 77// CHECK-SAME: </table> 78Node0x3 [shape=record,label= 79 "{ 80 { "state_id": 0, "program_state": null, "program_points": [ 81 { 82 "kind": "Statement", 83 "stmt_kind": "DeclRefExpr", 84 "stmt_point_kind": "PreStmt", 85 "stmt_id": 3, 86 "pointer": "0x3", 87 "pretty": "x", 88 "location": { 89 "file": "main.cpp", 90 "line": 4, 91 "column": 5 92 }, 93 "tag": "ExprEngine : Clean Node", 94 "node_id": 3, 95 "pointer": "0x3", 96 "has_report": 0, 97 "is_sink": 0 98 } 99 ]} 100\l}"]; 101 102// Test collapsing large pretty prints with braces. 103 104// CHECK-NEXT: <b>Program point:</b> 105// CHECK-SAME: <td align="left">\{ ... \}</td> 106Node0x4 [shape=record,label= 107 "{ 108 { 109 "state_id": 0, "program_state": null, "program_points": [ 110 { 111 "kind": "Statement", 112 "stmt_kind": "CompoundStmt", 113 "stmt_point_kind": "PostStmt", 114 "stmt_id": 6, 115 "pointer": "0x6", 116 "pretty": "{ very very very very very very long pretty print }", 117 "location": { 118 "line": 7, 119 "column": 8 120 }, 121 "tag": "ExprEngine : Clean Node", 122 "node_id": 4, 123 "has_report": 0, 124 "is_sink": 0 125 } 126 ]} 127\l}"]; 128 129// CHECK-NEXT: <b>Program point:</b> 130// CHECK-SAME: <table border="0" align="left" width="0"> 131// CHECK-SAME: <tr> 132// CHECK-SAME: <td align="left" width="0"> 133// CHECK-SAME: main.cpp:<b>8</b>:<b>9</b>: 134// CHECK-SAME: </td> 135// CHECK-SAME: <td align="left" width="0"> 136// CHECK-SAME: <font color="cyan4"> 137// CHECK-SAME: ImplicitCastExpr (LValueToRValue) 138// CHECK-SAME: </font> 139// CHECK-SAME: </td> 140// CHECK-SAME: <td align="left"><i>S5</i></td> 141// CHECK-SAME: <td align="left"> 142// CHECK-SAME: <font color="cyan3">PreStmt</font> 143// CHECK-SAME: </td> 144// CHECK-SAME: <td align="left">y</td> 145// CHECK-SAME: </tr> 146// CHECK-SAME: <tr> 147// CHECK-SAME: <td width="0"> 148// CHECK-SAME: </td> 149// CHECK-SAME: <td colspan="3" align="left"> 150// CHECK-SAME: <b>Tag: </b> 151// CHECK-SAME: <font color="crimson">ExprEngine : Clean Node</font> 152// CHECK-SAME: </td> 153// CHECK-SAME: </tr> 154// CHECK-SAME: </table> 155Node0x5 [shape=record,label= 156 "{ 157 { "state_id": 0, "program_state": null, "program_points": [ 158 { 159 "kind": "Statement", 160 "stmt_kind": "ImplicitCastExpr", 161 "cast_kind": "LValueToRValue", 162 "stmt_point_kind": "PreStmt", 163 "stmt_id": 5, 164 "pointer": "0x6", 165 "pretty": "y", 166 "location": { 167 "file": "main.cpp", 168 "line": 8, 169 "column": 9 170 }, 171 "tag": "ExprEngine : Clean Node", 172 "node_id": 5, 173 "has_report": 0, 174 "is_sink": 0 175 } 176 ]} 177\l}"]; 178