authorgravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2022-10-11 00:45:23-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-10-12 05:21:48-04:00
logbec40a89c21009ea7f2c41362cc13d27f065b43e
tree9d5fdd83189d907c1150e87e759bd9c829718f4f
parent1f196b9e2f9213fa395427bd5a8282ab154b1fe6

Windows: Fix stage1.zig's main failing to receive non-ASCII args

Closes #10506

1 files changed, 12 insertions(+), 4 deletions(-)

src/stage1.zig+12-4
......@@ -40,10 +40,18 @@ pub fn main(argc: c_int, argv: [*][*:0]u8) callconv(.C) c_int {
4040 defer arena_instance.deinit();
4141 const arena = arena_instance.allocator();
4242
43 const args = arena.alloc([]const u8, @intCast(usize, argc)) catch fatal("{s}", .{"OutOfMemory"});
44 for (args) |*arg, i| {
45 arg.* = mem.sliceTo(argv[i], 0);
46 }
43 const args: []const []const u8 = args: {
44 if (builtin.os.tag == .windows) {
45 break :args std.process.argsAlloc(arena) catch fatal("{s}", .{"OutOfMemory"});
46 } else {
47 const args = arena.alloc([]const u8, @intCast(usize, argc)) catch fatal("{s}", .{"OutOfMemory"});
48 for (args) |*arg, i| {
49 arg.* = mem.sliceTo(argv[i], 0);
50 }
51 break :args args;
52 }
53 };
54
4755 if (builtin.mode == .Debug) {
4856 stage2.mainArgs(gpa, arena, args) catch unreachable;
4957 } else {