From 92516a8e7ab2d9bb7529fa55987f9ef5a13bc4b6 Mon Sep 17 00:00:00 2001 From: Nikola Smiljanic Date: Sun, 24 Aug 2014 23:28:47 +0000 Subject: PR20716 - Crash when recovering from type in known dependent base. llvm-svn: 216352 --- clang/lib/Sema/SemaDecl.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'clang/lib/Sema/SemaDecl.cpp') 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(TD->getTemplatedDecl()); + auto *BasePrimaryTemplate = + dyn_cast_or_null(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)) { -- cgit v1.2.3