Explorar o código

Lagom: Fix printf implementation on win32

It seems that Filip has already done the hard work, and found out the
implementation different between unix* and windows.

Borrowed from:
https://github.com/SerenityOS/serenity/compare/master...filiphsps:serenity:dev-win32#diff-e3209c9a434a102d0d9459e31e33ddb729dff925b95f41b9d1e56c1e7f88c487R466

Co-authored-by: Filiph Sandström <filiph.sandstrom@filfatstudios.com>
Diego Iastrubni %!s(int64=2) %!d(string=hai) anos
pai
achega
58a44036a9
Modificáronse 1 ficheiros con 7 adicións e 0 borrados
  1. 7 0
      AK/PrintfImplementation.h

+ 7 - 0
AK/PrintfImplementation.h

@@ -463,7 +463,14 @@ template<typename T, typename V>
 struct VaArgNextArgument {
 struct VaArgNextArgument {
     ALWAYS_INLINE T operator()(V ap) const
     ALWAYS_INLINE T operator()(V ap) const
     {
     {
+#ifdef AK_OS_WINDOWS
+        // GCC on msys2 complains about the type of ap,
+        // so let's force the compiler to belive its a
+        // va_list.
+        return va_arg((va_list&)ap, T);
+#else
         return va_arg(ap, T);
         return va_arg(ap, T);
+#endif
     }
     }
 };
 };