diff options
author | Nikola Smiljanic <popizdeh@gmail.com> | 2014-08-24 23:28:47 +0000 |
---|---|---|
committer | Nikola Smiljanic <popizdeh@gmail.com> | 2014-08-24 23:28:47 +0000 |
commit | 92516a8e7ab2d9bb7529fa55987f9ef5a13bc4b6 (patch) | |
tree | b3f3250c7375d445a2ffa6fbe48063791016782b /clang/lib/Sema/SemaDecl.cpp | |
parent | 4627679cece264a966faa82a7c5bb79f273d5b6e (diff) | |
download | bcm5719-llvm-92516a8e7ab2d9bb7529fa55987f9ef5a13bc4b6.tar.gz bcm5719-llvm-92516a8e7ab2d9bb7529fa55987f9ef5a13bc4b6.zip |
PR20716 - Crash when recovering from type in known dependent base.
llvm-svn: 216352
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 0244d4c4a30..5293188214c 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -152,7 +152,10 @@ static ParsedType recoverFromTypeInKnownDependentBase(Sema &S, auto *TD = TST->getTemplateName().getAsTemplateDecl(); if (!TD) continue; - auto *BasePrimaryTemplate = cast<CXXRecordDecl>(TD->getTemplatedDecl()); + auto *BasePrimaryTemplate = + dyn_cast_or_null<CXXRecordDecl>(TD->getTemplatedDecl()); + if (!BasePrimaryTemplate) + continue; // FIXME: Allow lookup into non-dependent bases of dependent bases, possibly // by calling or integrating with the main LookupQualifiedName mechanism. for (NamedDecl *ND : BasePrimaryTemplate->lookup(&II)) { |