diff --git a/src/sequence_diagram/visitor/translation_unit_visitor.cc b/src/sequence_diagram/visitor/translation_unit_visitor.cc index ef54740d..f6b23238 100644 --- a/src/sequence_diagram/visitor/translation_unit_visitor.cc +++ b/src/sequence_diagram/visitor/translation_unit_visitor.cc @@ -1239,7 +1239,8 @@ translation_unit_visitor::create_class_declaration(clang::CXXRecordDecl *cls) id_opt = get_unique_id(local_id); // If not, check if the parent template declaration is in the model - if (!id_opt) { + if (!id_opt && static_cast(parent) + ->getDescribedTemplate()) { local_id = static_cast(parent) ->getDescribedTemplate() ->getID(); @@ -1248,7 +1249,8 @@ translation_unit_visitor::create_class_declaration(clang::CXXRecordDecl *cls) id_opt = get_unique_id(local_id); } - assert(id_opt); + if(!id_opt) + return {}; auto parent_class = diagram_.get_participant(