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 b073d7300bc606fc5f0fe115159d67ee7f9e7459..89acb0df60dc7c1dca94e311fd12b149d83f5443 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 8ba061333473414037f893e2b07ce97564333268..bc66d08167cf76e8989bcb6e9ddc74cbe8a2afe7 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; -- 2.54.0