From fad158037986c3b5068b36aff27f970be3069e5d Mon Sep 17 00:00:00 2001 From: lisyarus Date: Tue, 19 Nov 2024 19:09:01 +0300 Subject: [PATCH] Fix GCC false positive -Warray-bounds in geom::swizzle when using ubsan --- libs/geom/include/psemek/geom/swizzle.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/geom/include/psemek/geom/swizzle.hpp b/libs/geom/include/psemek/geom/swizzle.hpp index a6172c1d..20ec6057 100644 --- a/libs/geom/include/psemek/geom/swizzle.hpp +++ b/libs/geom/include/psemek/geom/swizzle.hpp @@ -21,12 +21,17 @@ namespace psemek::geom } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" + template constexpr auto swizzle = [](auto const & x){ + static_assert(((I == -1 || I < std::decay_t::static_dimension) && ...)); using result = typename detail::swizzle_rebind>::template type; using element = std::decay_t; return result{(I == (-1) ? element{} : x[I])...}; }; +#pragma GCC diagnostic pop }