1223 {
1226
1228 {
1230 if (SVFUtil::isa<AddrStmt>(
edge))
1231 {
1233 }
1234 else if (SVFUtil::isa<CopyStmt>(
edge))
1235 {
1237 }
1238 else if (SVFUtil::isa<RetPE>(
edge))
1239 {
1240 rawstr <<
"color=black,style=dotted";
1241 }
1242 else if (SVFUtil::isa<GepStmt>(
edge))
1243 {
1244 rawstr <<
"color=purple";
1245 }
1246 else if (SVFUtil::isa<StoreStmt>(
edge))
1247 {
1249 }
1250 else if (SVFUtil::isa<LoadStmt>(
edge))
1251 {
1253 }
1254 else
1255 {
1256 assert(0 &&
"No such kind edge!!");
1257 }
1259 }
1260 else if (SVFUtil::isa<CmpVFGNode>(node))
1261 {
1263 }
1264 else if (SVFUtil::isa<BinaryOPVFGNode>(node))
1265 {
1267 }
1268 else if (SVFUtil::isa<UnaryOPVFGNode>(node))
1269 {
1271 }
1272 else if(SVFUtil::isa<PHIVFGNode>(node))
1273 {
1275 }
1276 else if(SVFUtil::isa<NullPtrVFGNode>(node))
1277 {
1279 }
1280 else if(SVFUtil::isa<FormalParmVFGNode>(node))
1281 {
1282 rawstr <<
"color=yellow,penwidth=2";
1283 }
1284 else if(SVFUtil::isa<ActualParmVFGNode>(node))
1285 {
1286 rawstr <<
"color=yellow,penwidth=2";
1287 }
1288 else if (SVFUtil::isa<ActualRetVFGNode>(node))
1289 {
1290 rawstr <<
"color=yellow,penwidth=2";
1291 }
1292 else if (SVFUtil::isa<FormalRetVFGNode>(node))
1293 {
1294 rawstr <<
"color=yellow,penwidth=2";
1295 }
1296 else if (SVFUtil::isa<MRSVFGNode>(node))
1297 {
1298 rawstr <<
"color=orange,penwidth=2";
1299 }
1300 else if (SVFUtil::isa<BranchVFGNode>(node))
1301 {
1302 rawstr <<
"color=gold,penwidth=2";
1303 }
1304 else
1305 assert(
false &&
"no such kind of node!!");
1306
1308
1310 }