-#ifndef __VA_COPY_USE_GCB(d, s)
-/* Predefined possible va_copy() implementation (id: GCB) */
- #define __VA_COPY_USE_GCB(d, s) __builtin_va_copy((d), (s))
-#endif
+ #ifndef __VA_COPY_USE_CPP(d, s)
+ /* Predefined possible va_copy() implementation (id: CPP) */
+ #define __VA_COPY_USE_CPP(d, s) memcpy((void *)(d), (void *)(s), sizeof(*(s)))
+ #endif
+
+ #ifndef __VA_COPY_USE_CPS(d, s)
+ /* Predefined possible va_copy() implementation (id: CPS) */
+ #define __VA_COPY_USE_CPS(d, s) memcpy((void *)&(d), (void *)&(s), sizeof(s))
+ #endif
+
+ #ifndef __VA_COPY_USE_GCB(d, s)
+ /* Predefined possible va_copy() implementation (id: GCB) */
+ #define __VA_COPY_USE_GCB(d, s) __builtin_va_copy((d), (s))
+ #endif
+
+ #ifndef __VA_COPY_USE_GCH(d, s)
+ /* Predefined possible va_copy() implementation (id: GCH) */
+ #define __VA_COPY_USE_GCH(d, s) __va_copy((d), (s))
+ #endif
+ /* Predefined possible va_copy() implementation (id: GCM) */
+ #define __VA_COPY_USE_GCM(d, s) VA_COPY((d), (s))