diff options
author | Alex Lorenz <arphaman@gmail.com> | 2017-05-16 17:33:17 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2017-05-16 17:33:17 +0000 |
commit | d2b8aaa05a7fa1eef696b5e43db3a535a63559ec (patch) | |
tree | e7b4791f3855f54894d85e9d3a5ce4675a7af872 /clang/lib/AST/CXXInheritance.cpp | |
parent | b215d473ddadc3199bd63656bf15daff329082b6 (diff) | |
download | llvm-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.cpp | 2 |
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()); |