Work around GCC -Warray-bounds false positive in argument_vector (#5908)
diff --git a/include/pybind11/cast.h b/include/pybind11/cast.h
index 2f52479..5ecded3 100644
--- a/include/pybind11/cast.h
+++ b/include/pybind11/cast.h
@@ -2162,6 +2162,11 @@
template <size_t... Is>
bool load_impl_sequence(function_call &call, index_sequence<Is...>) {
+ PYBIND11_WARNING_PUSH
+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 13
+ // Work around a GCC -Warray-bounds false positive in argument_vector usage.
+ PYBIND11_WARNING_DISABLE_GCC("-Warray-bounds")
+#endif
#ifdef __cpp_fold_expressions
if ((... || !std::get<Is>(argcasters).load(call.args[Is], call.args_convert[Is]))) {
return false;
@@ -2173,6 +2178,7 @@
}
}
#endif
+ PYBIND11_WARNING_POP
return true;
}