From bdf9a7e18fd0f83579b66c97d3937fe9e1b892e6 Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Sat, 18 Feb 2023 23:04:32 +0100 Subject: [PATCH] Fixed generation of class_model_class diagram --- src/CMakeLists.txt | 6 ++++-- src/class_diagram/visitor/translation_unit_visitor.cc | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 290c95f9..15d9b597 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,7 +25,8 @@ endif(MSVC) target_compile_features(clang-umllib INTERFACE cxx_std_17) target_compile_options(clang-umllib PRIVATE $<$,$>: - -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-private-field> + -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-private-field + -Wno-deprecated-declarations> $<$:/MP /W1 /bigobj /wd4291 /wd4624 /wd4244>) target_compile_definitions(clang-umllib PRIVATE $<$: @@ -39,7 +40,8 @@ add_executable(clang-uml ${MAIN_SOURCE_FILE}) target_compile_features(clang-uml PUBLIC cxx_std_17) target_compile_options(clang-uml PRIVATE $<$,$>: - -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-private-field> + -Werror -Wall -Wextra -Wno-unused-parameter -Wno-unused-private-field + -Wno-deprecated-declarations> $<$:/MP /W1 /bigobj /wd4291 /wd4624 /wd4244>) target_link_libraries(clang-uml ${YAML_CPP_LIBRARIES} diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index 0364c88b..99071c7e 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -897,8 +897,12 @@ void translation_unit_visitor:: desugared_atsp = deduced_type->getDeducedType(); } - const auto *deduced_record_type = - desugared_atsp->getAs(); + if (desugared_atsp.isNull()) + return; + + const auto *deduced_record_type = desugared_atsp->isRecordType() + ? desugared_atsp->getAs() + : nullptr; if (deduced_record_type != nullptr) { if (auto *deduced_auto_decl =