virtual void visit(AstVarRef* nodep, AstNUser*) { if (nodep->lvalue() && !nodep->user2()) { nodep->user2(true); // mark this ref as visited AstVar* key = nodep->varp(); VarMap::iterator it = m_lhsmapp->find(key); if (it == m_lhsmapp->end()) { // this key does not exist yet, so create it RefVec* refs = new RefVec(); refs->push_back(nodep); m_lhsmapp->insert(pair<AstVar*, RefVec*>(key, refs)); } else { (*it).second->push_back(nodep); } nodep->user3p(m_sel); // attach the sel to this varref } nodep->iterateChildren(*this); }