diff --git a/.clang-uml b/.clang-uml index 225d0717..12e5bba2 100644 --- a/.clang-uml +++ b/.clang-uml @@ -1,6 +1,8 @@ compilation_database_dir: debug output_directory: docs/diagrams comment_parser: clang +remove_compile_flags: + - -Wno-class-memaccess generate_links: link: "{% if existsIn(element, \"doxygen_link\") %}{{ element.doxygen_link }}{% endif %}" tooltip: "{% if existsIn(element, \"comment\") and existsIn(element.comment, \"brief\") %}{{ abbrv(trim(replace(element.comment.brief.0, \"\\n+\", \" \")), 256) }}{% else %}{{ element.name }}{% endif %}" @@ -72,4 +74,4 @@ diagrams: include!: uml/package/architecture_package.yml # Include diagrams include_graph: - include!: uml/include/include.yml \ No newline at end of file + include!: uml/include/include.yml diff --git a/CMakeLists.txt b/CMakeLists.txt index 53779193..27bd54ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,6 +132,20 @@ if(APPLE OR (LLVM_VERSION_MAJOR GREATER_EQUAL 16)) ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}) endif() +# +# Setup custom compile options depending on various compiler +# and environment quirks +# +if(LLVM_VERSION_MAJOR GREATER_EQUAL 17) + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CUSTOM_COMPILE_OPTIONS "-Wno-class-memaccess") + endif() +endif() +if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(CUSTOM_COMPILE_OPTIONS + "${CUSTOM_COMPILE_OPTIONS} -Wno-unused-private-field") +endif() + # # Setup threads library # diff --git a/README.md b/README.md index 4d408897..27a7dab9 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Build status](https://github.com/bkryza/clang-uml/actions/workflows/build.yml/badge.svg)](https://github.com/bkryza/clang-uml/actions) [![Coverage](https://codecov.io/gh/bkryza/clang-uml/branch/master/graph/badge.svg)](https://codecov.io/gh/bkryza/clang-uml) [![Version](https://img.shields.io/badge/version-0.4.0-blue)](https://github.com/bkryza/clang-uml/releases) -[![Version](https://img.shields.io/badge/LLVM-12,13,14,15,16-orange)](https://github.com/bkryza/clang-uml/releases) +[![Version](https://img.shields.io/badge/LLVM-12,13,14,15,16,17-orange)](https://github.com/bkryza/clang-uml/releases) [![Doxygen](https://img.shields.io/badge/Docs-Doxygen-gainsboro)](https://clang-uml.github.io) `clang-uml` is an automatic C++ to UML class, sequence, package and include diagram generator, driven by diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9e285315..f36f662d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,8 +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 - -Wno-deprecated-declarations> + -Werror -Wall -Wextra -Wno-unused-parameter + -Wno-deprecated-declarations ${CUSTOM_COMPILE_OPTIONS}> $<$:/MP /W1 /bigobj /wd4291 /wd4624 /wd4244>) target_compile_definitions(clang-umllib PRIVATE $<$: @@ -40,8 +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 - -Wno-deprecated-declarations> + -Werror -Wall -Wextra -Wno-unused-parameter + -Wno-deprecated-declarations ${CUSTOM_COMPILE_OPTIONS}> $<$:/MP /W1 /bigobj /wd4291 /wd4624 /wd4244>) target_compile_definitions(clang-uml PRIVATE ${ENABLE_BACKWARD_CPP}) diff --git a/src/common/model/template_parameter.h b/src/common/model/template_parameter.h index 4c12d1a5..6334188a 100644 --- a/src/common/model/template_parameter.h +++ b/src/common/model/template_parameter.h @@ -504,8 +504,6 @@ private: /*! Whether template argument is ellipsis (...) */ bool is_ellipsis_{false}; - bool is_noexcept_{false}; - /*! Whether the template parameter is variadic */ bool is_variadic_{false}; diff --git a/src/sequence_diagram/model/diagram.h b/src/sequence_diagram/model/diagram.h index 6e50f840..4c58e5e1 100644 --- a/src/sequence_diagram/model/diagram.h +++ b/src/sequence_diagram/model/diagram.h @@ -328,8 +328,6 @@ private: return block_end_types.count(mt) > 0; }; - bool started_{false}; - std::map sequences_; std::map> diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index df5607c6..969967b0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -58,8 +58,9 @@ foreach(TEST_NAME ${TEST_CASES}) target_compile_options(${TEST_NAME} PRIVATE $<$: $<$,$>: - -Wno-unused-parameter -Wno-unused-private-field -Wno-unused-variable - -Wno-attributes -Wno-nonnull -Wno-deprecated-enum-enum-conversion> + -Wno-unused-parameter -Wno-unused-variable + -Wno-attributes -Wno-nonnull -Wno-deprecated-enum-enum-conversion + ${CUSTOM_COMPILE_OPTIONS}> $<$:/W1 /bigobj /wd4624>>) target_link_libraries(${TEST_NAME} PRIVATE ${CLANG_UML_TEST_LIBRARIES}) endforeach() diff --git a/tests/catch.h b/tests/catch.h index 27888c9d..9cb6f4fe 100644 --- a/tests/catch.h +++ b/tests/catch.h @@ -13301,9 +13301,6 @@ bool RegexMatcher::match(std::string const &matchee) const { auto flags = std::regex::ECMAScript; // ECMAScript is the default syntax // option anyway -#if !defined(_WIN32) - flags |= std::regex::multiline; -#endif if (m_caseSensitivity == CaseSensitive::Choice::No) { flags |= std::regex::icase;