From 99e5e19e72db30691a389d769bf4be2fa85f4dd1 Mon Sep 17 00:00:00 2001 From: Jelle Date: Mon, 3 Feb 2025 21:58:03 +0000 Subject: [PATCH] Fix crash on nullptr `TemplateTypeParm` decl (#1901) --- src/CppParser/Parser.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index 3e80f3d0..467d8ca6 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -2868,9 +2868,13 @@ Type* Parser::WalkType(clang::QualType QualType, const clang::TypeLoc* TL, } assertm(TL->getTypeLocClass() == TypeLoc::TemplateTypeParm, "Token should be template type parameter!\n"); - auto TTTL = TL->getAs(); + auto TTPTL = TL->getAs(); + auto TTPD = TTPTL.getDecl(); - TPT->parameter = WalkTypeTemplateParameter(TTTL.getDecl()); + if (!TTPD) + return nullptr; // Can happen when a template param is used in a nested template argument + + TPT->parameter = WalkTypeTemplateParameter(TTPD); } else if (TP->getDecl()) TPT->parameter = WalkTypeTemplateParameter(TP->getDecl());