diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-12-05 22:05:28 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-12-05 22:05:28 +0000 |
commit | da5f2d2360ace0ea32e4f3194906be4899a76c7d (patch) | |
tree | 9badfd6519f18b57e426167bb171c631710b24c6 /tools/libclang/IndexingContext.cpp | |
parent | 02f34c5003b2c5067675f89ffce0a84c28faf722 (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.cpp | 7 |
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: |