From 79ec08fe2f06f30f1759cb1f94e3ea162309e79b Mon Sep 17 00:00:00 2001 From: DixiE Date: Fri, 23 Oct 2020 00:34:32 +0100 Subject: [PATCH] Fix Compiler Error When Using wWinMain Entry-Point The fix for #6715 introduced a new compiler error when attempting to use wWinMain as the application entry-point. The Windows API often relies on implicit casts between signed and unsigned variables. In this case, wWinMain returns an INT despite the fact this value is intended to feed into ExitProcess, which expects a UINT, so I've restored the bitcast from #5613. --- lib/std/start.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/std/start.zig b/lib/std/start.zig index c6f05e790c..47164a0820 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -173,7 +173,8 @@ fn wWinMainCRTStartup() callconv(.Stdcall) noreturn { std.debug.maybeEnableSegfaultHandler(); - std.os.windows.kernel32.ExitProcess(initEventLoopAndCallWinMain()); + const result: std.os.windows.INT = initEventLoopAndCallWinMain(); + std.os.windows.kernel32.ExitProcess(@bitCast(std.os.windows.UINT, result)); } // TODO https://github.com/ziglang/zig/issues/265