mirror of
https://github.com/pybind/pybind11.git
synced 2026-06-04 13:34:24 +08:00
Appease MSVC Warning C4866: compiler may not enforce left-to-right evaluation order (#5953)
* Appease MSVC Warning C4866: compiler may not enforce left-to-right evaluation order * Remove const qualifier * Reword comment to be self-explanatory without PR context The previous comment referenced the MSVC warning but didn't explain why the code is structured as two statements. The revised comment clarifies the intent: fetching the value first ensures well-defined evaluation order. * chore(deps): switch typos to mirror repo Switch from crate-ci/typos to adhtruong/mirrors-typos because pre-commit autoupdate confuses tags in the upstream repo, selecting the mutable `v1` tag instead of pinned versions like `v1.41.0`. See https://github.com/crate-ci/typos/issues/390 --------- Co-authored-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
This commit is contained in:
@@ -119,8 +119,10 @@ repos:
|
||||
args: ["-x.codespell-ignore-lines", "-Lccompiler,intstruct"]
|
||||
|
||||
# Also check spelling
|
||||
- repo: https://github.com/crate-ci/typos
|
||||
rev: v1
|
||||
# Use mirror because pre-commit autoupdate confuses tags in the upstream repo.
|
||||
# See https://github.com/crate-ci/typos/issues/390
|
||||
- repo: https://github.com/adhtruong/mirrors-typos
|
||||
rev: "v1.41.0"
|
||||
hooks:
|
||||
- id: typos
|
||||
args: []
|
||||
|
||||
@@ -1081,7 +1081,10 @@ protected:
|
||||
dict kwargs;
|
||||
for (size_t i = 0; i < used_kwargs.size(); ++i) {
|
||||
if (!used_kwargs[i]) {
|
||||
kwargs[PyTuple_GET_ITEM(kwnames_in, i)] = args_in_arr[n_args_in + 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;
|
||||
}
|
||||
}
|
||||
call.args.push_back(kwargs);
|
||||
|
||||
Reference in New Issue
Block a user