Running phase: unpackPhase unpacking source archive /nix/store/ymb7zkkk64m94hixxxa7ca69j7lp867h-source source root is source Running phase: patchPhase Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase -- The C compiler identification is Clang 22.1.8 -- The CXX compiler identification is Clang 22.1.8 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /nix/store/aa0fqrgffl8ijza9mmx9apxy973215wz-clang-wrapper-22.1.8/bin/clang - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /nix/store/aa0fqrgffl8ijza9mmx9apxy973215wz-clang-wrapper-22.1.8/bin/clang++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Vulkan: /nix/store/la62431p5qf1ggr3rdzql9dksv5fhicc-vulkan-loader-1.4.363.0/lib/libvulkan.so (found version "1.4.363") missing components: glslc glslangValidator -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Found Fontconfig: /nix/store/p3y4rk4gjnhs80339qq7jixjbhplqc16-fontconfig-2.18.3-lib/lib/libfontconfig.so (found version "2.18.3") -- Found Freetype: /nix/store/zj7yb55h1zpmxmw6dp817n6y0370wji0-freetype-2.14.3/lib/libfreetype.so (found version "2.14.3") -- Found PkgConfig: /nix/store/s70gz6bvz74c36xigh5m2ab2cqli08cv-pkg-config-wrapper-0.29.2/bin/pkg-config (found version "0.29.2") -- Checking for module 'stb' -- Found stb, version 1 -- Configuring done (5.1s) -- Generating done (0.4s) -- Build files have been written to: /build/source/build Running phase: buildPhase Running clang-tidy in 16 threads for 47 files out of 47 in compilation database ... [ 1/47][24.7s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/input.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ [ 2/47][25.3s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_physics/src/ray.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here [ 3/47][33.5s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/scene/scene.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here [ 4/47][43.5s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/event.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ [ 5/47][48.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_utils/src/filesystem.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [ 6/47][51.1s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_text/src/font.cpp /build/source/wren_text/src/font.cpp:34:34: error: C-style casts are discouraged; use static_cast/const_cast/reinterpret_cast [modernize-avoid-c-style-cast,-warnings-as-errors] 34 | FcPattern* pat = FcNameParse((FcChar8* const)(font.data())); | ^ /build/source/wren_text/src/font.cpp:34:34: error: do not use C-style cast to convert between unrelated types [cppcoreguidelines-pro-type-cstyle-cast,-warnings-as-errors] /build/source/wren_text/src/font.cpp:43:43: error: do not use reinterpret_cast [cppcoreguidelines-pro-type-reinterpret-cast,-warnings-as-errors] 43 | font_path = std::filesystem::path{reinterpret_cast(file)}; | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [ 7/47][52.6s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_math/tests/geometry.cpp /build/source/wren_math/include/wren/math/format.hpp:11:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 11 | struct std::formatter, char> { | ^ /build/source/wren_math/include/wren/math/format.hpp:29:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 29 | struct std::formatter, char> { | ^ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ [ 8/47][52.8s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_utils/tests/enums.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/tests/enums.cpp:20:14: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 20 | BOOST_TEST(res.value() == TestEnums::Case1); | ^ /build/source/wren_utils/tests/enums.cpp:26:14: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 26 | BOOST_TEST(res.value() == TestEnums::Case2); | ^ /build/source/wren_utils/tests/enums.cpp:30:14: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 30 | BOOST_TEST(res.value() == TestEnums::Case1); | ^ [ 9/47][3.7s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_utils/src/string_reader.cpp [10/47][55.4s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_math/tests/vector.cpp /build/source/wren_math/include/wren/math/format.hpp:11:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 11 | struct std::formatter, char> { | ^ /build/source/wren_math/include/wren/math/format.hpp:29:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 29 | struct std::formatter, char> { | ^ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ [11/47][9.1s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_utils/src/string.cpp [12/47][39.3s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_utils/tests/string_reader.cpp [13/47][46.0s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/assets/manager.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [14/47][107.0s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/editor/src/inspector_panel.cpp /build/source/editor/src/inspector_panel.cpp:77:7: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 77 | mesh_renderer.update_mesh(ctx.project_path, new_file); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/editor/src/inspector_panel.cpp:77:7: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 77 | mesh_renderer.update_mesh(ctx.project_path, new_file); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/editor/src/inspector_panel.cpp:91:40: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 91 | ImGui::LabelText("##name", "%s", tag.data()); | ~~~~^~~~ /build/source/editor/src/inspector_panel.cpp:96:49: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 96 | if (ImGui::DragFloat(("##x" + std::string(tag.data())).c_str(), &x, 0.1F)) | ~~~~^~~~ /build/source/editor/src/inspector_panel.cpp:103:49: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 103 | if (ImGui::DragFloat(("##y" + std::string(tag.data())).c_str(), &y, 0.1F)) | ~~~~^~~~ /build/source/editor/src/inspector_panel.cpp:110:49: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 110 | if (ImGui::DragFloat(("##z" + std::string(tag.data())).c_str(), &z, 0.1F)) | ~~~~^~~~ /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [15/47][56.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_math/tests/matrix.cpp /build/source/wren_math/include/wren/math/format.hpp:11:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 11 | struct std::formatter, char> { | ^ /build/source/wren_math/include/wren/math/format.hpp:29:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 29 | struct std::formatter, char> { | ^ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_math/tests/matrix.cpp:21:21: error: performing an implicit widening conversion to type 'std::size_t' (aka 'unsigned long') of a multiplication performed in type 'int' [bugprone-implicit-widening-of-multiplication-result,-warnings-as-errors] 21 | std::array identity = { | ^ /build/source/wren_math/tests/matrix.cpp:21:21: note: make conversion explicit to silence this warning 2 | std::array identity = { | ^~~~~ | static_cast( ) /build/source/wren_math/tests/matrix.cpp:21:21: note: perform multiplication in a wider type 21 | std::array identity = { | ^ | static_cast( ) /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ [16/47][123.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/mesh.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/src/mesh.cpp:29:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 29 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:29:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 29 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:35:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 35 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | vertex_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:35:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 35 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | vertex_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:50:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 50 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:50:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 50 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:56:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 56 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58 | index_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:56:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 56 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 57 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 58 | index_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:69:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 69 | uniform_buffer_->set_data_raw(&ubo, size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/mesh.cpp:69:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 69 | uniform_buffer_->set_data_raw(&ubo, size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [17/47][129.1s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_vk/src/buffer.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [18/47][136.7s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/graph.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [19/47][140.6s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/renderer.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren/src/renderer.cpp:49:49: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 49 | render_targets_.at(kSwapchainRendertargetName.data()) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ /build/source/wren/src/renderer.cpp:196:59: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 196 | if (render_targets_.contains(kSwapchainRendertargetName.data())) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ /build/source/wren/src/renderer.cpp:290:60: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 290 | if (!render_targets_.contains(kSwapchainRendertargetName.data())) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ /build/source/wren/src/renderer.cpp:301:72: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 301 | const auto& target = render_targets_.at(kSwapchainRendertargetName.data()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [20/47][7.1s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_math/src/geometry.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here [21/47][98.1s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_vk/src/vulkan.cpp [22/47][45.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_utils/tests/binary_reader.cpp [23/47][156.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/utils/vulkan.cpp /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [24/47][158.3s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/render_pass.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [25/47][147.7s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/graphics_context.cpp /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [26/47][37.5s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_text/tests/font.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [27/47][156.5s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/application.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [28/47][28.5s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/editor/src/scene_panel.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here [29/47][16.6s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_vk/src/memory.cpp [30/47][26.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/scene/components/collider.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here [31/47][55.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_physics/tests/raycast.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here [32/47][155.2s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/mesh_loader.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/src/mesh_loader.cpp:33:20: error: performing an implicit widening conversion to type 'size_type' (aka 'unsigned long') of a multiplication performed in type 'unsigned int' [bugprone-implicit-widening-of-multiplication-result,-warnings-as-errors] 33 | vertices.reserve(triangles * 3); | ^ /build/source/wren/src/mesh_loader.cpp:33:20: note: make conversion explicit to silence this warning 4 | vertices.reserve(triangles * 3); | ^~~~~~~~~~~~~ | static_cast( ) /build/source/wren/src/mesh_loader.cpp:33:20: note: perform multiplication in a wider type 33 | vertices.reserve(triangles * 3); | ^~~~~~~~~ | static_cast( ) /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [33/47][155.5s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/window.cpp /build/source/wren/src/window.cpp:283:5: error: switching on non-enum value without default case may not cover all cases [bugprone-switch-missing-default-case,-warnings-as-errors] 283 | switch (event.type) { | ^ /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [34/47][113.6s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/texture.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [35/47][179.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/editor/src/editor.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [36/47][153.6s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/editor/src/ui.cpp /build/source/editor/src/ui.cpp:47:5: error: switch has 10 consecutive identical branches [bugprone-branch-clone,-warnings-as-errors] 47 | case wren::KeyCode::KExclaim: | ^ /build/source/editor/src/ui.cpp:66:37: note: last of these clones ends here 66 | return ImGuiKey::ImGuiKey_None; // FIXME | ^ /build/source/editor/src/ui.cpp:102:5: error: switch has 2 consecutive identical branches [bugprone-branch-clone,-warnings-as-errors] 102 | case wren::KeyCode::KQuestion: | ^ /build/source/editor/src/ui.cpp:105:37: note: last of these clones ends here 105 | return ImGuiKey::ImGuiKey_None; // FIXME | ^ /build/source/editor/src/ui.cpp:114:5: error: switch has 2 consecutive identical branches [bugprone-branch-clone,-warnings-as-errors] 114 | case wren::KeyCode::KUnderscore: | ^ /build/source/editor/src/ui.cpp:117:37: note: last of these clones ends here 117 | return ImGuiKey::ImGuiKey_None; | ^ /build/source/editor/src/ui.cpp:283:63: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 283 | [&io](const auto& e) { io.AddInputCharactersUTF8(e.text.data()); }); | ~~~~~~~^~~~ /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [37/47][106.0s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/utils/queue.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [38/47][101.7s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/utils/device.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [39/47][30.7s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/editor/src/filesystem_panel.cpp /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [40/47][141.8s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/examples/nand/main.cpp /build/source/examples/nand/main.cpp:62:29: error: performing an implicit widening conversion to type 'VkDeviceSize' (aka 'unsigned long') of a multiplication performed in type 'int' [bugprone-implicit-widening-of-multiplication-result,-warnings-as-errors] 62 | VkDeviceSize image_size = tex_width * tex_height * tex_channels; | ^ /build/source/examples/nand/main.cpp:62:29: note: make conversion explicit to silence this warning 1 | VkDeviceSize image_size = tex_width * tex_height * tex_channels; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | static_cast( ) /build/source/examples/nand/main.cpp:62:29: note: perform multiplication in a wider type 62 | VkDeviceSize image_size = tex_width * tex_height * tex_channels; | ^~~~~~~~~~~~~~~~~~~~~~ | static_cast( ) /build/source/examples/nand/main.cpp:146:6: error: an exception may be thrown in function 'main' which should not throw exceptions [bugprone-exception-escape,-warnings-as-errors] 146 | auto main() -> int { | ^ /build/source/examples/nand/main.cpp:64:5: note: frame #0: unhandled exception of type 'std::runtime_error' may be thrown in function 'initialize' here 64 | throw std::runtime_error("Failed to load texture"); | ^ /build/source/examples/nand/main.cpp:170:25: note: frame #1: function 'main' calls function 'initialize' here 170 | const auto init_err = initialize(data); | ^ /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_pass.hpp:156:3: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 156 | buffer->set_data_raw(&data, sizeof(T)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/examples/nand/main.cpp:112:24: note: in instantiation of function template specialization 'wren::RenderPass::write_scratch_buffer' requested here 112 | pass.write_scratch_buffer(cmd, 0, 0, ubo); | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [41/47][89.2s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/render_target.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [42/47][94.8s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_gui/src/instance.cpp /build/source/wren_gui/src/instance.cpp:37:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 37 | const std::vector kQuadIndices = {0, 1, 3, 3, 1, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren_gui/src/instance.cpp:100:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 100 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_gui/src/instance.cpp:100:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 100 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_gui/src/instance.cpp:106:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 106 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 108 | vertex_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_gui/src/instance.cpp:106:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 106 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 108 | vertex_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_gui/src/instance.cpp:119:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 119 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_gui/src/instance.cpp:119:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 119 | staging_buffer->set_data_raw(data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_gui/src/instance.cpp:125:5: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 125 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 126 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 127 | index_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_gui/src/instance.cpp:125:5: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 125 | vk::Buffer::copy_buffer(device.get(), device.get_graphics_queue(), | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 126 | device.command_pool(), staging_buffer, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 127 | index_buffer_, data.size_bytes()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [43/47][61.5s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_vk/src/image.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [44/47][96.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/editor/src/main.cpp /build/source/editor/src/main.cpp:14:6: error: an exception may be thrown in function 'main' which should not throw exceptions [bugprone-exception-escape,-warnings-as-errors] 14 | auto main(int argc, char** argv) -> int { | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/expected:824:2: note: frame #0: unhandled exception of type 'std::bad_expected_access' may be thrown in function 'value' here 824 | _GLIBCXX_THROW_OR_ABORT(bad_expected_access<_Er>(_M_unex)); | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/x86_64-unknown-linux-gnu/bits/c++config.h:262:42: note: expanded from macro '_GLIBCXX_THROW_OR_ABORT' 262 | # define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC)) | ^ /build/source/editor/src/main.cpp:46:21: note: frame #1: function 'main' calls function 'value' here 46 | const auto& app = err.value(); | ^ /build/source/editor/src/main.cpp:52:48: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 52 | const auto res = editor::Editor::create(app, project_path.value()); | ^~~~~~~~~~~~ /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/render_target.hpp:67:42: error: enum value of type 'SampleCountFlagBits' initialized with invalid value of 0, enum doesn't have a zero-value enumerator [bugprone-invalid-enum-default-initialization,-warnings-as-errors] 67 | ::vk::SampleCountFlagBits sample_count_{}; | ^ /nix/store/wj32fr9qda2anncv77ah46vxkhdz22qv-vulkan-headers-1.4.363.0/include/vulkan/vulkan_enums.hpp:2655:14: note: enum is defined here 2655 | enum class SampleCountFlagBits : VkSampleCountFlags | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [45/47][81.3s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/scene/deserialization.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren/src/scene/deserialization.cpp:23:32: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 23 | for (const auto& e : *table["entities"].as_array()) { | ^~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:26:44: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 26 | scene->create_entity(entity_table["name"].as_string()->get()); | ^~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:45:21: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 45 | deserialize(*table["position"].as_table(), transform.position); | ^~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:46:21: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 46 | deserialize(*table["rotation"].as_table(), transform.rotation); | ^~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:47:21: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 47 | deserialize(*table["scale"].as_table(), transform.scale); | ^~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:53:3: error: ignoring return value of type 'expected' declared with 'nodiscard' attribute [clang-diagnostic-unused-value,-warnings-as-errors] 53 | mesh_renderer.update_mesh(project_root, *table["path"].value()); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:53:3: error: the value returned by this function should not be disregarded; neglecting it may lead to errors [bugprone-unused-return-value,-warnings-as-errors] 53 | mesh_renderer.update_mesh(project_root, *table["path"].value()); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:53:44: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 53 | mesh_renderer.update_mesh(project_root, *table["path"].value()); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:53:49: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 53 | mesh_renderer.update_mesh(project_root, *table["path"].value()); | ^~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:57:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 57 | vec.x(*table["x"].value()); | ^~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:57:15: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 57 | vec.x(*table["x"].value()); | ^~~~~ /build/source/wren/src/scene/deserialization.cpp:58:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 58 | vec.y(*table["y"].value()); | ^~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:58:15: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 58 | vec.y(*table["y"].value()); | ^~~~~ /build/source/wren/src/scene/deserialization.cpp:59:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 59 | vec.z(*table["z"].value()); | ^~~~~~~~~~~~~~~~~~~~~~~~~ /build/source/wren/src/scene/deserialization.cpp:59:15: error: possibly unsafe 'operator[]', consider bounds-safe alternatives [cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,-warnings-as-errors] 59 | vec.z(*table["z"].value()); | ^~~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [46/47][53.4s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren_vk/src/shader.cpp /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( ) [47/47][61.9s] /nix/store/cj3il9qsgnh2msf8lzvgp2bmmmz91ppq-clang-tools-22.1.8/bin/clang-tidy --use-color -p=build -quiet /build/source/wren/src/scene/serialization.cpp /build/source/wren/include/wren/mesh.hpp:26:18: error: initialization of 'kTriangleVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 26 | const std::array kTriangleVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:32:18: error: initialization of 'kQuadVertices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 32 | const std::array kQuadVertices = { | ^ /build/source/wren_math/include/wren/math/vector.hpp:184:3: note: possibly throwing constructor declared here 184 | Vec3f(float x, float y, float z) : Vec(x, y, z) {} | ^ /build/source/wren/include/wren/mesh.hpp:55:29: error: initialization of 'kQuadIndices' with static storage duration may throw an exception that cannot be caught [bugprone-throwing-static-initialization,-warnings-as-errors] 55 | const std::vector kQuadIndices = {0, 2, 1, 0, 3, 2}; | ^ /nix/store/xpaz3fi6ibqxb9sla4gjlp0c82v566y8-gcc-16.2.0/include/c++/16.2.0/bits/stl_vector.h:698:7: note: possibly throwing constructor declared here 698 | vector(initializer_list __l, | ^ /build/source/wren/include/wren/utils/vulkan.hpp:42:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:42:52: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 42 | if (std::strcmp(ext.extensionName.data(), name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:56:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:56:41: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 56 | if (std::strcmp(ext.layerName, name.data())) { | ~~~~~^~~~ /build/source/wren/include/wren/utils/vulkan.hpp:71:9: error: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ^ | != 0 /build/source/wren/include/wren/utils/vulkan.hpp:71:45: error: result of a `data()` call may not be null terminated, provide size information to the callee to prevent potential issues [bugprone-suspicious-stringview-data-usage,-warnings-as-errors] 71 | if (std::strcmp(ext.extensionName, name.data())) { | ~~~~~^~~~ /build/source/wren_math/include/wren/math/vector.hpp:201:3: error: constructor accepting a forwarding reference can hide the copy and move constructors [bugprone-forwarding-reference-overload,-warnings-as-errors] 201 | Vec4f(auto&& other) : Vec(other) {} | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: copy constructor declared here 198 | struct Vec4f : Vec { | ^ /build/source/wren_math/include/wren/math/vector.hpp:198:8: note: move constructor declared here /build/source/wren_utils/include/wren/logging/log.hpp:37:10: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors] 37 | return level.value(); | ^~~~~ /build/source/wren_utils/include/wren/utils/enums.hpp:32:68: error: repeated branch body in conditional chain [bugprone-branch-clone,-warnings-as-errors] 32 | if (case_insensitive && boost::iequals(name, described)) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:12: note: end of the original 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/enums.hpp:35:62: note: clone 1 starts here 35 | } else if (!case_insensitive && name == described) { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:12:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 12 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:66:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 66 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:97:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 97 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:126:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 126 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:155:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 155 | struct std::formatter, char> { | ^ /build/source/wren_utils/include/wren/utils/format.hpp:184:13: error: modification of 'std' namespace can result in undefined behavior [bugprone-std-namespace-modification,-warnings-as-errors] 184 | struct std::formatter { | ^ /build/source/wren_utils/include/wren/utils/macros.hpp:17:39: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 17 | #define WREN_ASSERT(expr, msg) assert(expr && (msg)); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:112:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 112 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:113:53: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 113 | if (!(unique).has_value()) return std::unexpected(unique.error()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:118:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 118 | out = std::move((unique).value()); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:125:8: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 125 | auto unique = (expr); \ | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:126:36: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 126 | if (!(unique).has_value()) throw unique.error(); | ^ | ( ) /build/source/wren_utils/include/wren/utils/result.hpp:131:3: error: macro argument should be enclosed in parentheses [bugprone-macro-parentheses,-warnings-as-errors] 131 | out = (unique).value(); | ^ | ( )