1246 {
1249
1251 {
1253 if (SVFUtil::isa<AddrStmt>(
edge))
1254 {
1256 }
1257 else if (SVFUtil::isa<CopyStmt>(
edge))
1258 {
1260 }
1261 else if (SVFUtil::isa<RetPE>(
edge))
1262 {
1263 rawstr <<
"color=black,style=dotted";
1264 }
1265 else if (SVFUtil::isa<GepStmt>(
edge))
1266 {
1267 rawstr <<
"color=purple";
1268 }
1269 else if (SVFUtil::isa<StoreStmt>(
edge))
1270 {
1272 }
1273 else if (SVFUtil::isa<LoadStmt>(
edge))
1274 {
1276 }
1277 else
1278 {
1279 assert(0 &&
"No such kind edge!!");
1280 }
1282 }
1283 else if (SVFUtil::isa<CmpVFGNode>(node))
1284 {
1286 }
1287 else if (SVFUtil::isa<BinaryOPVFGNode>(node))
1288 {
1290 }
1291 else if (SVFUtil::isa<UnaryOPVFGNode>(node))
1292 {
1294 }
1295 else if(SVFUtil::isa<PHIVFGNode>(node))
1296 {
1298 }
1299 else if(SVFUtil::isa<NullPtrVFGNode>(node))
1300 {
1302 }
1303 else if(SVFUtil::isa<FormalParmVFGNode>(node))
1304 {
1305 rawstr <<
"color=yellow,penwidth=2";
1306 }
1307 else if(SVFUtil::isa<ActualParmVFGNode>(node))
1308 {
1309 rawstr <<
"color=yellow,penwidth=2";
1310 }
1311 else if (SVFUtil::isa<ActualRetVFGNode>(node))
1312 {
1313 rawstr <<
"color=yellow,penwidth=2";
1314 }
1315 else if (SVFUtil::isa<FormalRetVFGNode>(node))
1316 {
1317 rawstr <<
"color=yellow,penwidth=2";
1318 }
1319 else if (SVFUtil::isa<MRSVFGNode>(node))
1320 {
1321 rawstr <<
"color=orange,penwidth=2";
1322 }
1323 else if (SVFUtil::isa<BranchVFGNode>(node))
1324 {
1325 rawstr <<
"color=gold,penwidth=2";
1326 }
1327 else
1328 assert(
false &&
"no such kind of node!!");
1329
1331
1333 }