static void FindEntitiesInDC(DeclContext *DC, Program &Prog, EntityHandler &Handler) { for (DeclContext::decl_iterator I = DC->decls_begin(), E = DC->decls_end(); I != E; ++I) { if (I->getLocation().isInvalid()) continue; Entity Ent = Entity::get(*I, Prog); if (Ent.isValid()) Handler.Handle(Ent); if (DeclContext *SubDC = dyn_cast<DeclContext>(*I)) FindEntitiesInDC(SubDC, Prog, Handler); } }