Patch #554716: Use __va_copy where available.
diff --git a/Python/getargs.c b/Python/getargs.c
index 280ffc3..cc0409d 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -61,8 +61,12 @@
#ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list));
#else
+#ifdef __va_copy
+ __va_copy(lva, va);
+#else
lva = va;
#endif
+#endif
return vgetargs1(args, format, &lva, 0);
}
diff --git a/Python/modsupport.c b/Python/modsupport.c
index f4f8298..1f8ef07 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -418,8 +418,12 @@
#ifdef VA_LIST_IS_ARRAY
memcpy(lva, va, sizeof(va_list));
#else
+#ifdef __va_copy
+ __va_copy(lva, va);
+#else
lva = va;
#endif
+#endif
if (n < 0)
return NULL;