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 =