From a91f55239369b4401aaa50a74ed939f5eb98395d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 3 Dec 2019 12:52:28 -0500 Subject: [PATCH] WinMainCRTStartup implies defaulting to console subsystem --- lib/std/builtin.zig | 3 ++- src/codegen.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index b073d7300b..89acb0df60 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -26,7 +26,8 @@ pub const subsystem: ?SubSystem = blk: { if (is_test) { break :blk SubSystem.Console; } - if (@hasDecl(root, "WinMain") or + if (@hasDecl(root, "main") or + @hasDecl(root, "WinMain") or @hasDecl(root, "wWinMain") or @hasDecl(root, "WinMainCRTStartup") or @hasDecl(root, "wWinMainCRTStartup")) diff --git a/src/codegen.cpp b/src/codegen.cpp index 8ba0613334..bc66d08167 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -8229,9 +8229,9 @@ TargetSubsystem detect_subsystem(CodeGen *g) { if (g->zig_target->os == OsWindows) { if (g->have_dllmain_crt_startup || (g->out_type == OutTypeLib && g->is_dynamic)) return TargetSubsystemAuto; - if (g->have_c_main || g->is_test_build) + if (g->have_c_main || g->is_test_build || g->have_winmain_crt_startup) return TargetSubsystemConsole; - if (g->have_winmain || g->have_winmain_crt_startup) + if (g->have_winmain) return TargetSubsystemWindows; } else if (g->zig_target->os == OsUefi) { return TargetSubsystemEfiApplication;