static void nodes_for_root(GepNode *Root, NodeChildrenMap &NCM, NodeSet &Nodes) { NodeVect Work; Work.push_back(Root); Nodes.insert(Root); while (!Work.empty()) { NodeVect::iterator First = Work.begin(); GepNode *N = *First; Work.erase(First); NodeChildrenMap::iterator CF = NCM.find(N); if (CF != NCM.end()) { Work.insert(Work.end(), CF->second.begin(), CF->second.end()); Nodes.insert(CF->second.begin(), CF->second.end()); } } }