当前位置: 首页>>代码示例>>C++>>正文


C++ goto_programt::get_successors方法代码示例

本文整理汇总了C++中goto_programt::get_successors方法的典型用法代码示例。如果您正苦于以下问题:C++ goto_programt::get_successors方法的具体用法?C++ goto_programt::get_successors怎么用?C++ goto_programt::get_successors使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在goto_programt的用法示例。


在下文中一共展示了goto_programt::get_successors方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: construct_cfg

void cfg_dominatorst::construct_cfg(
  const goto_programt &program, 
  goto_programt::const_targett PC)
{
  nodet &node=node_map[PC];
  node.PC=PC;
  
  program.get_successors(PC, node.successors);

  // now do backward edges
  for(goto_programt::const_targetst::const_iterator
        s_it=node.successors.begin();
      s_it!=node.successors.end();
      s_it++)
  {
    node_map[*s_it].predecessors.push_back(node.PC);
  }

}
开发者ID:smaorus,项目名称:rvt,代码行数:19,代码来源:cfg_dominators.cpp

示例2: remove_unreachable

void remove_unreachable(goto_programt &goto_program)
{
  std::set<goto_programt::targett> reachable;
  std::stack<goto_programt::targett> working;

  working.push(goto_program.instructions.begin());

  while(!working.empty())
  {
    goto_programt::targett t=working.top();
    working.pop();

    if(reachable.find(t)==reachable.end() &&
       t!=goto_program.instructions.end())
    {
      reachable.insert(t);
      goto_programt::targetst successors;
      goto_program.get_successors(t, successors);

      for(goto_programt::targetst::const_iterator
          s_it=successors.begin();
          s_it!=successors.end();
          s_it++)
        working.push(*s_it);
    }
  }

  // make all unreachable code a skip
  // unless it's an 'end_function'

  Forall_goto_program_instructions(it, goto_program)
  {
    if(reachable.find(it)==reachable.end() &&
       !it->is_end_function())
      it->make_skip();
  }
}
开发者ID:diffblue,项目名称:cbmc,代码行数:37,代码来源:remove_unreachable.cpp


注:本文中的goto_programt::get_successors方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。