Appease MSVC Warning C4866: compiler may not enforce left-to-right evaluation order (#5955)

This commit is contained in:
Xuehai Pan
2026-01-11 02:46:01 +08:00
committed by GitHub
parent d36f5dd5a4
commit cc551ada33

View File

@@ -1081,10 +1081,11 @@ protected:
dict kwargs;
for (size_t i = 0; i < used_kwargs.size(); ++i) {
if (!used_kwargs[i]) {
// Fetch value before indexing into kwargs to ensure well-defined
// evaluation order (MSVC C4866).
PyObject *const arg_in_arr = args_in_arr[n_args_in + i];
kwargs[PyTuple_GET_ITEM(kwnames_in, i)] = arg_in_arr;
// Cast values into handles before indexing into kwargs to ensure
// well-defined evaluation order (MSVC C4866).
handle arg_in_arr = args_in_arr[n_args_in + i],
kwname = PyTuple_GET_ITEM(kwnames_in, i);
kwargs[kwname] = arg_in_arr;
}
}
call.args.push_back(kwargs);