[libclang] When indexing a field in a C++ class, return an entity
of kind CXIdxEntity_CXXInstanceVariable. rdar://10522503.
llvm-svn: 145859
diff --git a/clang/tools/libclang/IndexingContext.cpp b/clang/tools/libclang/IndexingContext.cpp
index b5da646..f597797 100644
--- a/clang/tools/libclang/IndexingContext.cpp
+++ b/clang/tools/libclang/IndexingContext.cpp
@@ -736,7 +736,12 @@
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: