summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorNikola Smiljanic <popizdeh@gmail.com>2014-08-24 23:28:47 +0000
committerNikola Smiljanic <popizdeh@gmail.com>2014-08-24 23:28:47 +0000
commit92516a8e7ab2d9bb7529fa55987f9ef5a13bc4b6 (patch)
treeb3f3250c7375d445a2ffa6fbe48063791016782b /clang/lib/Sema/SemaDecl.cpp
parent4627679cece264a966faa82a7c5bb79f273d5b6e (diff)
downloadbcm5719-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.cpp5
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)) {
OpenPOWER on IntegriCloud