logic: fixed potential crash when solving decls in lambda captures

* fixed potential crash when solving decls in lambda captures
* fixed solving type of anonymous structs/classes in c code
* added null checks in name resolvers
This commit is contained in:
malte_langkabel
2016-11-21 16:31:35 +01:00
parent 9084d3bd7c
commit 57e708338b
4 changed files with 122 additions and 86 deletions
@@ -30,7 +30,16 @@ std::string CxxTemplateArgumentNameResolver::getTemplateArgumentName(const clang
case clang::TemplateArgument::Type:
{
CxxTypeNameResolver typeNameResolver(getIgnoredContextDecls());
return typeNameResolver.getName(argument.getAsType())->toString();
std::shared_ptr<CxxTypeName> typeName = typeNameResolver.getName(argument.getAsType());
if (typeName)
{
return typeName->toString();
}
else
{
LOG_WARNING("Unable to solve name for template type argument");
}
break;
}
case clang::TemplateArgument::Integral:
case clang::TemplateArgument::Null: