diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-23 16:58:45 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-23 16:58:45 +0000 |
| commit | 5c4e065a9a6a5b24a676330e58e9d70da0ac78b5 (patch) | |
| tree | e171fbcb517c49bc725ceeb4e950659e3bac4919 /clang/tools | |
| parent | 7e614d7dce06221e4484fb720b69457c162f048d (diff) | |
| download | bcm5719-llvm-5c4e065a9a6a5b24a676330e58e9d70da0ac78b5.tar.gz bcm5719-llvm-5c4e065a9a6a5b24a676330e58e9d70da0ac78b5.zip | |
Introduce CXXRecordDecl::isCLike() that is true if the class is C-like,
without C++-specific features.
Use it to set the language to C++ when indexing non-C-like structs.
rdar://10732579
llvm-svn: 148708
Diffstat (limited to 'clang/tools')
| -rw-r--r-- | clang/tools/libclang/IndexingContext.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/clang/tools/libclang/IndexingContext.cpp b/clang/tools/libclang/IndexingContext.cpp index 3d70144db54..a124cbdff52 100644 --- a/clang/tools/libclang/IndexingContext.cpp +++ b/clang/tools/libclang/IndexingContext.cpp @@ -814,12 +814,9 @@ void IndexingContext::getEntityInfo(const NamedDecl *D, EntityInfo.kind = CXIdxEntity_Enum; break; } - if (const CXXRecordDecl *CXXRec = dyn_cast<CXXRecordDecl>(D)) { - // FIXME: isPOD check is not sufficient, a POD can contain methods, - // we want a isCStructLike check. - if (CXXRec->hasDefinition() && !CXXRec->isPOD()) + if (const CXXRecordDecl *CXXRec = dyn_cast<CXXRecordDecl>(D)) + if (!CXXRec->isCLike()) EntityInfo.lang = CXIdxEntityLang_CXX; - } if (isa<ClassTemplatePartialSpecializationDecl>(D)) { EntityInfo.templateKind = CXIdxEntity_TemplatePartialSpecialization; |

