From ad3229ebb2cee6b395f6f72ebe5e2c70049d3f41 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Fri, 15 Jan 2016 12:29:43 +0100 Subject: [PATCH] data: fixed auto type * fixed handling of non-deducible auto-type (e.g. when the auto-type depends on a template parameter). --- .../cxx/name_resolver/CxxTypeNameResolver.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib_parser/data/parser/cxx/name_resolver/CxxTypeNameResolver.cpp b/src/lib_parser/data/parser/cxx/name_resolver/CxxTypeNameResolver.cpp index 34940b8c..2a14aeed 100644 --- a/src/lib_parser/data/parser/cxx/name_resolver/CxxTypeNameResolver.cpp +++ b/src/lib_parser/data/parser/cxx/name_resolver/CxxTypeNameResolver.cpp @@ -177,8 +177,17 @@ std::shared_ptr CxxTypeNameResolver::typeToDataType(const clang::Type* } case clang::Type::Auto: { - const clang::AutoType* autoType = clang::dyn_cast(type); - dataType = qualTypeToDataType(autoType->getDeducedType()); + clang::QualType deducedType = clang::dyn_cast(type)->getDeducedType(); + if (!deducedType.isNull()) + { + dataType = qualTypeToDataType(deducedType); + } + else + { + NameHierarchy typeNameHerarchy; + typeNameHerarchy.push(std::make_shared("auto")); + dataType = std::make_shared(typeNameHerarchy); + } break; } case clang::Type::Decltype: