| ... | ... | @@ -688,11 +688,15 @@ fn buildOutputType( |
| 688 | 688 | } else if (mem.eql(u8, arg, "--stack")) { |
| 689 | 689 | if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg}); |
| 690 | 690 | i += 1; |
| 691 | | stack_size_override = parseAnyBaseInt(args[i]); |
| 691 | stack_size_override = std.fmt.parseUnsigned(u64, args[i], 0) catch |err| { |
| 692 | fatal("unable to parse '{}': {}", .{ arg, @errorName(err) }); |
| 693 | }; |
| 692 | 694 | } else if (mem.eql(u8, arg, "--image-base")) { |
| 693 | 695 | if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg}); |
| 694 | 696 | i += 1; |
| 695 | | image_base_override = parseAnyBaseInt(args[i]); |
| 697 | image_base_override = std.fmt.parseUnsigned(u64, args[i], 0) catch |err| { |
| 698 | fatal("unable to parse '{}': {}", .{ arg, @errorName(err) }); |
| 699 | }; |
| 696 | 700 | } else if (mem.eql(u8, arg, "--name")) { |
| 697 | 701 | if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg}); |
| 698 | 702 | i += 1; |
| ... | ... | @@ -1225,7 +1229,7 @@ fn buildOutputType( |
| 1225 | 1229 | if (i >= linker_args.items.len) { |
| 1226 | 1230 | fatal("expected linker arg after '{}'", .{arg}); |
| 1227 | 1231 | } |
| 1228 | | version.major = std.fmt.parseInt(u32, linker_args.items[i], 10) catch |err| { |
| 1232 | version.major = std.fmt.parseUnsigned(u32, linker_args.items[i], 10) catch |err| { |
| 1229 | 1233 | fatal("unable to parse '{}': {}", .{ arg, @errorName(err) }); |
| 1230 | 1234 | }; |
| 1231 | 1235 | have_version = true; |
| ... | ... | @@ -1234,7 +1238,7 @@ fn buildOutputType( |
| 1234 | 1238 | if (i >= linker_args.items.len) { |
| 1235 | 1239 | fatal("expected linker arg after '{}'", .{arg}); |
| 1236 | 1240 | } |
| 1237 | | version.minor = std.fmt.parseInt(u32, linker_args.items[i], 10) catch |err| { |
| 1241 | version.minor = std.fmt.parseUnsigned(u32, linker_args.items[i], 10) catch |err| { |
| 1238 | 1242 | fatal("unable to parse '{}': {}", .{ arg, @errorName(err) }); |
| 1239 | 1243 | }; |
| 1240 | 1244 | have_version = true; |
| ... | ... | @@ -1243,13 +1247,17 @@ fn buildOutputType( |
| 1243 | 1247 | if (i >= linker_args.items.len) { |
| 1244 | 1248 | fatal("expected linker arg after '{}'", .{arg}); |
| 1245 | 1249 | } |
| 1246 | | stack_size_override = parseAnyBaseInt(linker_args.items[i]); |
| 1250 | stack_size_override = std.fmt.parseUnsigned(u64, linker_args.items[i], 0) catch |err| { |
| 1251 | fatal("unable to parse '{}': {}", .{ arg, @errorName(err) }); |
| 1252 | }; |
| 1247 | 1253 | } else if (mem.eql(u8, arg, "--image-base")) { |
| 1248 | 1254 | i += 1; |
| 1249 | 1255 | if (i >= linker_args.items.len) { |
| 1250 | 1256 | fatal("expected linker arg after '{}'", .{arg}); |
| 1251 | 1257 | } |
| 1252 | | image_base_override = parseAnyBaseInt(linker_args.items[i]); |
| 1258 | image_base_override = std.fmt.parseUnsigned(u64, linker_args.items[i], 0) catch |err| { |
| 1259 | fatal("unable to parse '{}': {}", .{ arg, @errorName(err) }); |
| 1260 | }; |
| 1253 | 1261 | } else { |
| 1254 | 1262 | warn("unsupported linker arg: {}", .{arg}); |
| 1255 | 1263 | } |
| ... | ... | @@ -3188,18 +3196,3 @@ pub fn cleanExit() void { |
| 3188 | 3196 | process.exit(0); |
| 3189 | 3197 | } |
| 3190 | 3198 | } |
| 3191 | | |
| 3192 | | fn parseAnyBaseInt(prefixed_bytes: []const u8) u64 { |
| 3193 | | const base: u8 = if (mem.startsWith(u8, prefixed_bytes, "0x")) |
| 3194 | | 16 |
| 3195 | | else if (mem.startsWith(u8, prefixed_bytes, "0o")) |
| 3196 | | 8 |
| 3197 | | else if (mem.startsWith(u8, prefixed_bytes, "0b")) |
| 3198 | | 2 |
| 3199 | | else |
| 3200 | | @as(u8, 10); |
| 3201 | | const bytes = if (base == 10) prefixed_bytes else prefixed_bytes[2..]; |
| 3202 | | return std.fmt.parseInt(u64, bytes, base) catch |err| { |
| 3203 | | fatal("unable to parse '{}': {}", .{ prefixed_bytes, @errorName(err) }); |
| 3204 | | }; |
| 3205 | | } |