@@ -1638,10 +1638,10 @@ fn buildOutputType(
1638
1638
linker_z_relro = true ;
1639
1639
} else if (mem .eql (u8 , z_arg , "norelro" )) {
1640
1640
linker_z_relro = false ;
1641
- } else if (mem . chompPrefix ( u8 , z_arg , "common-page-size=" )) | rest | {
1642
- linker_z_common_page_size = parseIntSuffix ( rest , 0 ) ;
1643
- } else if (mem . chompPrefix ( u8 , z_arg , "max-page-size=" )) | rest | {
1644
- linker_z_max_page_size = parseIntSuffix ( rest , 0 ) ;
1641
+ } else if (prefixedIntArg ( z_arg , "common-page-size=" )) | int | {
1642
+ linker_z_common_page_size = int ;
1643
+ } else if (prefixedIntArg ( z_arg , "max-page-size=" )) | int | {
1644
+ linker_z_max_page_size = int ;
1645
1645
} else {
1646
1646
fatal ("unsupported linker extension flag: -z {s}" , .{z_arg });
1647
1647
}
@@ -1662,14 +1662,14 @@ fn buildOutputType(
1662
1662
linker_import_table = true ;
1663
1663
} else if (mem .eql (u8 , arg , "--export-table" )) {
1664
1664
linker_export_table = true ;
1665
- } else if (mem . chompPrefix ( u8 , arg , "--initial-memory=" )) | rest | {
1666
- linker_initial_memory = parseIntSuffix ( rest , 0 ) ;
1667
- } else if (mem . chompPrefix ( u8 , arg , "--max-memory=" )) | rest | {
1668
- linker_max_memory = parseIntSuffix ( rest , 0 ) ;
1665
+ } else if (prefixedIntArg ( arg , "--initial-memory=" )) | int | {
1666
+ linker_initial_memory = int ;
1667
+ } else if (prefixedIntArg ( arg , "--max-memory=" )) | int | {
1668
+ linker_max_memory = int ;
1669
1669
} else if (mem .eql (u8 , arg , "--shared-memory" )) {
1670
1670
create_module .opts .shared_memory = true ;
1671
- } else if (mem . chompPrefix ( u8 , arg , "--global-base=" )) | rest | {
1672
- linker_global_base = parseIntSuffix ( rest , 0 ) ;
1671
+ } else if (prefixedIntArg ( arg , "--global-base=" )) | int | {
1672
+ linker_global_base = int ;
1673
1673
} else if (mem .chompPrefix (u8 , arg , "--export=" )) | rest | {
1674
1674
try linker_export_symbol_names .append (arena , rest );
1675
1675
} else if (mem .eql (u8 , arg , "-Bsymbolic" )) {
@@ -2555,10 +2555,10 @@ fn buildOutputType(
2555
2555
linker_z_relro = false ;
2556
2556
} else if (mem .chompPrefix (u8 , z_arg , "stack-size=" )) | rest | {
2557
2557
stack_size = parseStackSize (rest );
2558
- } else if (mem . chompPrefix ( u8 , z_arg , "common-page-size=" )) | rest | {
2559
- linker_z_common_page_size = parseIntSuffix ( rest , 0 ) ;
2560
- } else if (mem . chompPrefix ( u8 , z_arg , "max-page-size=" )) | rest | {
2561
- linker_z_max_page_size = parseIntSuffix ( rest , 0 ) ;
2558
+ } else if (prefixedIntArg ( z_arg , "common-page-size=" )) | int | {
2559
+ linker_z_common_page_size = int ;
2560
+ } else if (prefixedIntArg ( z_arg , "max-page-size=" )) | int | {
2561
+ linker_z_max_page_size = int ;
2562
2562
} else {
2563
2563
fatal ("unsupported linker extension flag: -z {s}" , .{z_arg });
2564
2564
}
@@ -6617,10 +6617,9 @@ fn eatIntPrefix(arg: []const u8, base: u8) []const u8 {
6617
6617
return arg ;
6618
6618
}
6619
6619
6620
- fn parseIntSuffix (arg : []const u8 , prefix_len : usize ) u64 {
6621
- return std .fmt .parseUnsigned (u64 , arg [prefix_len .. ], 0 ) catch | err | {
6622
- fatal ("unable to parse '{s}': {s}" , .{ arg , @errorName (err ) });
6623
- };
6620
+ fn prefixedIntArg (arg : []const u8 , prefix : []const u8 ) ? u64 {
6621
+ const number = mem .chompPrefix (u8 , arg , prefix ) orelse return null ;
6622
+ return std .fmt .parseUnsigned (u64 , number , 0 ) catch | err | fatal ("unable to parse '{s}': {t}" , .{ arg , err });
6624
6623
}
6625
6624
6626
6625
fn warnAboutForeignBinaries (
0 commit comments