From 6a6b2483479a1ad0ab82300452f0ce71fa90b2d7 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 2 Aug 2018 17:40:11 +0200 Subject: bpo-29565: Fix compilation for C89 (GH-8626) Use a local scope for the 'i' variable. --- Modules/_ctypes/libffi_msvc/ffi.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Modules/_ctypes/libffi_msvc/ffi.c b/Modules/_ctypes/libffi_msvc/ffi.c index 75dada5..f28c3e0 100644 --- a/Modules/_ctypes/libffi_msvc/ffi.c +++ b/Modules/_ctypes/libffi_msvc/ffi.c @@ -220,14 +220,18 @@ ffi_call(/*@dependent@*/ ffi_cif *cif, break; #else case FFI_SYSV: - /* If a single argument takes more than 8 bytes, - then a copy is passed by reference. */ - for (unsigned i = 0; i < cif->nargs; i++) { - size_t z = cif->arg_types[i]->size; - if (z > 8) { - void *temp = alloca(z); - memcpy(temp, avalue[i], z); - avalue[i] = temp; + /* use a local scope for the 'i' variable */ + { + unsigned i; + /* If a single argument takes more than 8 bytes, + then a copy is passed by reference. */ + for (i = 0; i < cif->nargs; i++) { + size_t z = cif->arg_types[i]->size; + if (z > 8) { + void *temp = alloca(z); + memcpy(temp, avalue[i], z); + avalue[i] = temp; + } } } /*@-usedef@*/ -- cgit v0.12