本文整理汇总了C++中CFGNode::getCFGType方法的典型用法代码示例。如果您正苦于以下问题:C++ CFGNode::getCFGType方法的具体用法?C++ CFGNode::getCFGType怎么用?C++ CFGNode::getCFGType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFGNode
的用法示例。
在下文中一共展示了CFGNode::getCFGType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: __printDotGraphForGraphviz
void CFG::__printDotGraphForGraphviz()
{
FILE* f = fopen("../current-cfg.dot","w");
fprintf(f,"digraph graphname {\n");
for(vector<CFGNode*>::iterator it = _CFGBlocks.begin(); it != _CFGBlocks.end();++it)
{
CFGNode* c = *it;
vector<CFGNode*> edges = c->getNextEdges();
string label = "";
//Print the label
if(c->getCFGType() != CFG_DUMMY)
{
for(int i = c->getStartStatement(); i<= c->getEndStatement(); i++)
{
label += to_string((long long)i);
if(i<c->getEndStatement()) label += ",";
}
fprintf(f,"%d [label=\"%s\"]\n",__indexOf(_CFGBlocks,*it), label.c_str());
}
else
{
fprintf(f,"%d [label=\"Dummy %d\"]\n",__indexOf(_CFGBlocks,*it), c->getProcIndex());
}
//Connect edges
for(vector<CFGNode*>::iterator n = edges.begin(); n!= edges.end(); ++n)
{
fprintf(f,"%d -> %d\n", __indexOf(_CFGBlocks,*it), __indexOf(_CFGBlocks,*n));
}
}
fprintf(f,"}");
fclose(f);
}