diff options
Diffstat (limited to 'lib/Index/Program.cpp')
-rw-r--r-- | lib/Index/Program.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Index/Program.cpp b/lib/Index/Program.cpp index 807d18c699..73759dc95c 100644 --- a/lib/Index/Program.cpp +++ b/lib/Index/Program.cpp @@ -25,6 +25,8 @@ using namespace idx; EntityHandler::~EntityHandler() { } TranslationUnit::~TranslationUnit() { } +void EntityHandler::HandleEntity(Entity Ent) { } + Program::Program() : Impl(new ProgramImpl()) { } Program::~Program() { @@ -34,8 +36,10 @@ Program::~Program() { static void FindEntitiesInDC(DeclContext *DC, Program &Prog, EntityHandler *Handler) { for (DeclContext::decl_iterator I = DC->decls_begin(), E = DC->decls_end(); I != E; ++I) { - Entity *Ent = Entity::get(*I, Prog); - if (Ent) + if (I->getLocation().isInvalid()) + continue; + Entity Ent = Entity::get(*I, Prog); + if (Ent.isValid()) Handler->HandleEntity(Ent); if (DeclContext *SubDC = dyn_cast<DeclContext>(*I)) FindEntitiesInDC(SubDC, Prog, Handler); |