include/msvcrt: Replace va_list by __ms_va_list for x86_64.
diff --git a/include/msvcrt/crtdefs.h b/include/msvcrt/crtdefs.h index fce448e..9eac870 100644 --- a/include/msvcrt/crtdefs.h +++ b/include/msvcrt/crtdefs.h
@@ -68,6 +68,18 @@ # endif #endif /* __cdecl */ +#ifndef __ms_va_list +# if defined(__x86_64__) && defined (__GNUC__) +# define __ms_va_list __builtin_ms_va_list +# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg) +# define __ms_va_end(list) __builtin_ms_va_end(list) +# else +# define __ms_va_list va_list +# define __ms_va_start(list,arg) va_start(list,arg) +# define __ms_va_end(list) va_end(list) +# endif +#endif + #ifndef _INTPTR_T_DEFINED #ifdef _WIN64 typedef __int64 intptr_t;
diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index 98cc950..b65a2b1 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h
@@ -115,7 +115,7 @@ int __cdecl _snprintf(char*,size_t,const char*,...); char* __cdecl _tempnam(const char*,const char*); int __cdecl _unlink(const char*); -int __cdecl _vsnprintf(char*,size_t,const char*,va_list); +int __cdecl _vsnprintf(char*,size_t,const char*,__ms_va_list); void __cdecl clearerr(FILE*); int __cdecl fclose(FILE*); @@ -155,9 +155,9 @@ FILE* __cdecl tmpfile(void); char* __cdecl tmpnam(char*); int __cdecl ungetc(int,FILE*); -int __cdecl vfprintf(FILE*,const char*,va_list); -int __cdecl vprintf(const char*,va_list); -int __cdecl vsprintf(char*,const char*,va_list); +int __cdecl vfprintf(FILE*,const char*,__ms_va_list); +int __cdecl vprintf(const char*,__ms_va_list); +int __cdecl vsprintf(char*,const char*,__ms_va_list); #ifndef _WSTDIO_DEFINED #define _WSTDIO_DEFINED @@ -166,7 +166,7 @@ wchar_t* __cdecl _getws(wchar_t*); int __cdecl _putws(const wchar_t*); int __cdecl _snwprintf(wchar_t*,size_t,const wchar_t*,...); -int __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,va_list); +int __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,__ms_va_list); FILE* __cdecl _wfdopen(int,const wchar_t*); FILE* __cdecl _wfopen(const wchar_t*,const wchar_t*); FILE* __cdecl _wfreopen(const wchar_t*,const wchar_t*,FILE*); @@ -193,9 +193,9 @@ int __cdecl swprintf(wchar_t*,const wchar_t*,...); int __cdecl swscanf(const wchar_t*,const wchar_t*,...); wint_t __cdecl ungetwc(wint_t,FILE*); -int __cdecl vfwprintf(FILE*,const wchar_t*,va_list); -int __cdecl vswprintf(wchar_t*,const wchar_t*,va_list); -int __cdecl vwprintf(const wchar_t*,va_list); +int __cdecl vfwprintf(FILE*,const wchar_t*,__ms_va_list); +int __cdecl vswprintf(wchar_t*,const wchar_t*,__ms_va_list); +int __cdecl vwprintf(const wchar_t*,__ms_va_list); int __cdecl wprintf(const wchar_t*,...); int __cdecl wscanf(const wchar_t*,...); #endif /* _WSTDIO_DEFINED */ @@ -218,7 +218,7 @@ static inline int unlink(const char* path) { return _unlink(path); } #define _UNLINK_DEFINED #endif -static inline int vsnprintf(char *buffer, size_t size, const char *format, va_list args) { return _vsnprintf(buffer,size,format,args); } +static inline int vsnprintf(char *buffer, size_t size, const char *format, __ms_va_list args) { return _vsnprintf(buffer,size,format,args); } static inline wint_t fgetwchar(void) { return _fgetwchar(); } static inline wint_t fputwchar(wint_t wc) { return _fputwchar(wc); }
diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h index d966caa..77bcc10 100644 --- a/include/msvcrt/wchar.h +++ b/include/msvcrt/wchar.h
@@ -275,7 +275,7 @@ wchar_t* __cdecl _getws(wchar_t*); int __cdecl _putws(const wchar_t*); int __cdecl _snwprintf(wchar_t*,size_t,const wchar_t*,...); -int __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,va_list); +int __cdecl _vsnwprintf(wchar_t*,size_t,const wchar_t*,__ms_va_list); FILE* __cdecl _wfdopen(int,const wchar_t*); FILE* __cdecl _wfopen(const wchar_t*,const wchar_t*); FILE* __cdecl _wfreopen(const wchar_t*,const wchar_t*,FILE*); @@ -302,9 +302,9 @@ int __cdecl swprintf(wchar_t*,const wchar_t*,...); int __cdecl swscanf(const wchar_t*,const wchar_t*,...); wint_t __cdecl ungetwc(wint_t,FILE*); -int __cdecl vfwprintf(FILE*,const wchar_t*,va_list); -int __cdecl vswprintf(wchar_t*,const wchar_t*,va_list); -int __cdecl vwprintf(const wchar_t*,va_list); +int __cdecl vfwprintf(FILE*,const wchar_t*,__ms_va_list); +int __cdecl vswprintf(wchar_t*,const wchar_t*,__ms_va_list); +int __cdecl vwprintf(const wchar_t*,__ms_va_list); int __cdecl wprintf(const wchar_t*,...); int __cdecl wscanf(const wchar_t*,...); #endif /* _WSTDIO_DEFINED */