aboutsummaryrefslogtreecommitdiff
path: root/tools/index-test/index-test.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-21 00:07:06 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2009-07-21 00:07:06 +0000
commitf7cf15ca3c9bee7c0348f549e7a8f0af32b5fa54 (patch)
tree05e1fd135984a32777ddfbd291bfdc913046d50a /tools/index-test/index-test.cpp
parent07ef804f918d8aade8739a02e78c6209fd3062a9 (diff)
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
Diffstat (limited to 'tools/index-test/index-test.cpp')
-rw-r--r--tools/index-test/index-test.cpp8
1 files changed, 3 insertions, 5 deletions
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<TUnit*>(*I);
- Decl *OtherD = Ent->getDecl(TU->getASTContext());
+ Decl *OtherD = Ent.getDecl(TU->getASTContext());
assert(OtherD && "Couldn't resolve Entity");
ProcessDecl(OtherD);
}