aboutsummaryrefslogtreecommitdiff
path: root/tools/libclang/IndexingContext.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-12-05 22:05:28 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-12-05 22:05:28 +0000
commitda5f2d2360ace0ea32e4f3194906be4899a76c7d (patch)
tree9badfd6519f18b57e426167bb171c631710b24c6 /tools/libclang/IndexingContext.cpp
parent02f34c5003b2c5067675f89ffce0a84c28faf722 (diff)
[libclang] When indexing a field in a C++ class, return an entity
of kind CXIdxEntity_CXXInstanceVariable. rdar://10522503. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145859 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/libclang/IndexingContext.cpp')
-rw-r--r--tools/libclang/IndexingContext.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/libclang/IndexingContext.cpp b/tools/libclang/IndexingContext.cpp
index b5da6461bc..f597797132 100644
--- a/tools/libclang/IndexingContext.cpp
+++ b/tools/libclang/IndexingContext.cpp
@@ -736,7 +736,12 @@ void IndexingContext::getEntityInfo(const NamedDecl *D,
EntityInfo.kind = CXIdxEntity_CXXStaticVariable;
break;
case Decl::Field:
- EntityInfo.kind = CXIdxEntity_Field; break;
+ EntityInfo.kind = CXIdxEntity_Field;
+ if (const CXXRecordDecl *
+ CXXRec = dyn_cast<CXXRecordDecl>(D->getDeclContext()))
+ if (!CXXRec->isPOD())
+ EntityInfo.kind = CXIdxEntity_CXXInstanceVariable;
+ break;
case Decl::EnumConstant:
EntityInfo.kind = CXIdxEntity_EnumConstant; break;
case Decl::ObjCInterface: