diff --git a/src/lib/data/parser/cxx/ASTVisitor.cpp b/src/lib/data/parser/cxx/ASTVisitor.cpp index a971730f..783086ee 100644 --- a/src/lib/data/parser/cxx/ASTVisitor.cpp +++ b/src/lib/data/parser/cxx/ASTVisitor.cpp @@ -475,12 +475,14 @@ bool ASTVisitor::VisitFunctionTemplateDecl(clang::FunctionTemplateDecl *declarat for (size_t i = 0; i < argumentList->size(); i++) { const clang::TemplateArgument& argument = argumentList->get(i); - const clang::QualType argumentType = argument.getAsType(); - - m_client->onTemplateArgumentTypeParsed( - ParseLocation(specializedFunctionLocation.filePath, 0, 0), // TODO: Find a valid ParseLocation here! - utility::qualTypeToDataType(argumentType)->getTypeNameHierarchy(), - specializedFunction.nameHierarchy); + if (argument.getKind() == clang::TemplateArgument::Type) + { + const clang::QualType argumentType = argument.getAsType(); + m_client->onTemplateArgumentTypeParsed( + ParseLocation(specializedFunctionLocation.filePath, 0, 0), // TODO: Find a valid ParseLocation here! + utility::qualTypeToDataType(argumentType)->getTypeNameHierarchy(), + specializedFunction.nameHierarchy); + } } } } diff --git a/src/lib/data/parser/cxx/utilityCxx.cpp b/src/lib/data/parser/cxx/utilityCxx.cpp index a13bd50e..4619a0b7 100644 --- a/src/lib/data/parser/cxx/utilityCxx.cpp +++ b/src/lib/data/parser/cxx/utilityCxx.cpp @@ -500,6 +500,7 @@ namespace utility typeParent = clang::dyn_cast(ssswd)->getDecl(); break; default: + typeParent = nullptr; LOG_ERROR("aahhh"); } }