logic: fixed some crashes

* verbose ast visitor logs the file that is currently visited.
* fixed crash in log controller
* fixed crash when solving the name of an anonymous element that has no valid location
This commit is contained in:
malte_langkabel
2016-11-28 16:10:01 +01:00
parent 0fad00e6f2
commit 1b15933819
5 changed files with 22 additions and 9 deletions
@@ -288,8 +288,12 @@ std::shared_ptr<CxxDeclName> CxxDeclNameResolver::getDeclName(const clang::Named
std::string CxxDeclNameResolver::getNameForAnonymousSymbol(const std::string& symbolKindName, const clang::PresumedLoc& presumedBegin)
{
return "anonymous " + symbolKindName +
" (" + FilePath(presumedBegin.getFilename()).fileName() + "<" + std::to_string(presumedBegin.getLine()) + ":" + std::to_string(presumedBegin.getColumn()) + ">)";
if (presumedBegin.isValid())
{
return "anonymous " + symbolKindName +
" (" + FilePath(presumedBegin.getFilename()).fileName() + "<" + std::to_string(presumedBegin.getLine()) + ":" + std::to_string(presumedBegin.getColumn()) + ">)";
}
return "anonymous " + symbolKindName;
}
std::string CxxDeclNameResolver::getTemplateParameterString(const clang::NamedDecl* parameter)
@@ -333,7 +337,7 @@ std::string CxxDeclNameResolver::getTemplateParameterTypeString(const clang::Non
{
typeNameResolver.ignoreContextDecl(m_currentDecl);
}
std::string typeString = "";
std::shared_ptr<CxxTypeName> typeName = typeNameResolver.getName(parameter->getType());