headers: Fix non-standard C++ two-argument swprintf() function

Currently this function can be compiled by g++ only with -O1 (or up)
because it uses __builtin_va_arg_pack().

Both non-standard C++ two-argument swprintf() and vswprintf() functions are
just redirection to _swprintf() and _vswprintf() functions. So declare them
via __MINGW_ASM_CALL() redirection, which works with both clang and gcc
compilers in both optimizing and non-optimizing modes.

Reported issue: https://github.com/mingw-w64/mingw-w64/issues/92

Signed-off-by: Martin Storsjö <martin@martin.st>
diff --git a/mingw-w64-headers/crt/swprintf.inl b/mingw-w64-headers/crt/swprintf.inl
index 3fe7712..7adfbb6 100644
--- a/mingw-w64-headers/crt/swprintf.inl
+++ b/mingw-w64-headers/crt/swprintf.inl
@@ -7,36 +7,15 @@
 #ifndef _INC_SWPRINTF_INL
 #define _INC_SWPRINTF_INL
 
-#include <vadefs.h>
-
 #ifdef __cplusplus
 
 extern "C++" {
 
-__mingw_ovr
 /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
-int vswprintf (wchar_t *__stream, const wchar_t *__format, __builtin_va_list __local_argv)
-{
-  return _vswprintf( __stream, __format, __local_argv );
-}
+int vswprintf (wchar_t *__stream, const wchar_t *__format, __builtin_va_list __local_argv) __MINGW_ASM_CALL(_vswprintf);
 
-__mingw_ovr
 /* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
-int swprintf (wchar_t *__stream, const wchar_t *__format, ...)
-{
-#ifdef __clang__
-  /* clang does not support __builtin_va_arg_pack(), so forward swprintf() to vswprintf() */
-  int __retval;
-  __builtin_va_list __local_argv;
-
-  __builtin_va_start( __local_argv, __format );
-  __retval = vswprintf( __stream, __format, __local_argv );
-  __builtin_va_end( __local_argv );
-  return __retval;
-#else
-  return _swprintf( __stream, __format, __builtin_va_arg_pack() );
-#endif
-}
+int swprintf (wchar_t *__stream, const wchar_t *__format, ...) __MINGW_ASM_CALL(_swprintf);
 
 }