aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/AST/CXXInheritance.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-05-16 17:33:17 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-05-16 17:33:17 +0000
commitd2b8aaa05a7fa1eef696b5e43db3a535a63559ec (patch)
treee7b4791f3855f54894d85e9d3a5ce4675a7af872 /clang/lib/AST/CXXInheritance.cpp
parentb215d473ddadc3199bd63656bf15daff329082b6 (diff)
downloadllvm-d2b8aaa05a7fa1eef696b5e43db3a535a63559ec.zip
llvm-d2b8aaa05a7fa1eef696b5e43db3a535a63559ec.tar.gz
llvm-d2b8aaa05a7fa1eef696b5e43db3a535a63559ec.tar.bz2
[index] Avoid another crash that happens when looking up a dependent name
in a record that has a base without a definition rdar://32224197 llvm-svn: 303192
Diffstat (limited to 'clang/lib/AST/CXXInheritance.cpp')
-rw-r--r--clang/lib/AST/CXXInheritance.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/AST/CXXInheritance.cpp b/clang/lib/AST/CXXInheritance.cpp
index 4499ec7..746602d 100644
--- a/clang/lib/AST/CXXInheritance.cpp
+++ b/clang/lib/AST/CXXInheritance.cpp
@@ -278,6 +278,8 @@ bool CXXBasePaths::lookupInBases(ASTContext &Context,
dyn_cast_or_null<ClassTemplateDecl>(TN.getAsTemplateDecl()))
BaseRecord = TD->getTemplatedDecl();
}
+ if (BaseRecord && !BaseRecord->hasDefinition())
+ BaseRecord = nullptr;
} else {
BaseRecord = cast<CXXRecordDecl>(
BaseSpec.getType()->castAs<RecordType>()->getDecl());