From f7cf15ca3c9bee7c0348f549e7a8f0af32b5fa54 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 21 Jul 2009 00:07:06 +0000 Subject: Change the semantics for Entity. Entity can now refer to declarations that are not visible outside the translation unit. It is a wrapper of a pointer union, it's either a Decl* for declarations that don't "cross" translation units, or an EntityImpl* which is associated with the specific "visible" Decl. Included is a test case for handling fields across translation units. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76515 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/index-test/index-test.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'tools/index-test/index-test.cpp') diff --git a/tools/index-test/index-test.cpp b/tools/index-test/index-test.cpp index 8fd871d08c..4516e31365 100644 --- a/tools/index-test/index-test.cpp +++ b/tools/index-test/index-test.cpp @@ -151,10 +151,8 @@ static void ProcessASTLocation(ASTLocation ASTLoc, IndexProvider &IdxProvider) { return; } - Entity *Ent = Entity::get(D, IdxProvider.getProgram()); - // If there is no Entity associated with this Decl, it means that it's not - // visible to other translation units. - if (!Ent) + Entity Ent = Entity::get(D, IdxProvider.getProgram()); + if (Ent.isInvalid() || Ent.isInternalToTU()) return ProcessDecl(D); // Find the "same" Decl in other translation units and print information. @@ -162,7 +160,7 @@ static void ProcessASTLocation(ASTLocation ASTLoc, IndexProvider &IdxProvider) { I = IdxProvider.translation_units_begin(Ent), E = IdxProvider.translation_units_end(Ent); I != E; ++I) { TUnit *TU = static_cast(*I); - Decl *OtherD = Ent->getDecl(TU->getASTContext()); + Decl *OtherD = Ent.getDecl(TU->getASTContext()); assert(OtherD && "Couldn't resolve Entity"); ProcessDecl(OtherD); } -- cgit v1.2.3-18-g5258