diff --git a/386/include/ape/stdarg.h b/386/include/ape/stdarg.h index 05d033e4c..295b88b95 100644 --- a/386/include/ape/stdarg.h +++ b/386/include/ape/stdarg.h @@ -7,5 +7,5 @@ typedef char *va_list; (char *)(&(start)+1)) #define va_end(list) #define va_arg(list, mode) ((mode*)(list += sizeof(mode)))[-1] - +#define va_copy(dst, src) ((dst) = (src)) #endif /* __STDARG */ diff --git a/68020/include/ape/stdarg.h b/68020/include/ape/stdarg.h index b7e2282e6..9a1f08c7e 100644 --- a/68020/include/ape/stdarg.h +++ b/68020/include/ape/stdarg.h @@ -7,5 +7,6 @@ typedef char *va_list; #define va_end(list) #define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \ sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1]) +#define va_copy(dst, src) ((dst) = (src)) #endif /* __STDARG */ diff --git a/amd64/include/ape/stdarg.h b/amd64/include/ape/stdarg.h index cf466841f..b687c5a46 100644 --- a/amd64/include/ape/stdarg.h +++ b/amd64/include/ape/stdarg.h @@ -3,8 +3,10 @@ typedef char *va_list; -#define va_start(list, start) list = (sizeof(start)<8 ? (char *)((long long *)&(start)+1) : \ -(char *)(&(start)+1)) +#define va_start(list, start) \ + (list = (sizeof(start)<8 ? \ + (char *)((long long *)&(start)+1) : \ + (char *)(&(start)+1))) #define va_end(list) #define va_arg(list, mode)\ ((sizeof(mode) == 1)?\ @@ -14,5 +16,7 @@ typedef char *va_list; (sizeof(mode) == 4)?\ ((mode*)(list += 8))[-2]:\ ((mode*)(list += sizeof(mode)))[-1]) +#define va_copy(dst, src) \ + ((dst) = (src)) #endif /* __STDARG */ diff --git a/arm/include/ape/stdarg.h b/arm/include/ape/stdarg.h index 05d033e4c..eb1c097a7 100644 --- a/arm/include/ape/stdarg.h +++ b/arm/include/ape/stdarg.h @@ -7,5 +7,6 @@ typedef char *va_list; (char *)(&(start)+1)) #define va_end(list) #define va_arg(list, mode) ((mode*)(list += sizeof(mode)))[-1] +#define va_copy(dst, src) ((dst) = (src)) #endif /* __STDARG */ diff --git a/arm64/include/ape/stdarg.h b/arm64/include/ape/stdarg.h index cf466841f..9486c08e5 100644 --- a/arm64/include/ape/stdarg.h +++ b/arm64/include/ape/stdarg.h @@ -14,5 +14,6 @@ typedef char *va_list; (sizeof(mode) == 4)?\ ((mode*)(list += 8))[-2]:\ ((mode*)(list += sizeof(mode)))[-1]) +#define va_copy(dst, src) ((dst) = (src)) #endif /* __STDARG */ diff --git a/mips/include/ape/stdarg.h b/mips/include/ape/stdarg.h index b7e2282e6..9a1f08c7e 100644 --- a/mips/include/ape/stdarg.h +++ b/mips/include/ape/stdarg.h @@ -7,5 +7,6 @@ typedef char *va_list; #define va_end(list) #define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \ sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1]) +#define va_copy(dst, src) ((dst) = (src)) #endif /* __STDARG */ diff --git a/power/include/ape/stdarg.h b/power/include/ape/stdarg.h index b7e2282e6..9a1f08c7e 100644 --- a/power/include/ape/stdarg.h +++ b/power/include/ape/stdarg.h @@ -7,5 +7,6 @@ typedef char *va_list; #define va_end(list) #define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \ sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1]) +#define va_copy(dst, src) ((dst) = (src)) #endif /* __STDARG */ diff --git a/sparc64/include/ape/stdarg.h b/sparc64/include/ape/stdarg.h index b7e2282e6..9a1f08c7e 100644 --- a/sparc64/include/ape/stdarg.h +++ b/sparc64/include/ape/stdarg.h @@ -7,5 +7,6 @@ typedef char *va_list; #define va_end(list) #define va_arg(list, mode) (sizeof(mode)==1 ? ((mode *) (list += 4))[-4] : \ sizeof(mode)==2 ? ((mode *) (list += 4))[-2] : ((mode *) (list += sizeof(mode)))[-1]) +#define va_copy(dst, src) ((dst) = (src)) #endif /* __STDARG */