Merge pull request #1044 from visualfc/wasmsizes

compiler: check wasm sizes
This commit is contained in:
xushiwei
2025-04-01 13:27:26 +08:00
committed by GitHub
2 changed files with 8 additions and 3 deletions

View File

@@ -153,7 +153,12 @@ func Do(args []string, conf *Config) ([]Package, error) {
}
prog := llssa.NewProgram(target)
sizes := prog.TypeSizes
sizes := func(sizes types.Sizes, compiler, arch string) types.Sizes {
if arch == "wasm" && os.Getenv("LLGO_WASM32") == "1" {
sizes = &types.StdSizes{4, 4}
}
return prog.TypeSizes(sizes)
}
dedup := packages.NewDeduper()
dedup.SetPreload(func(pkg *types.Package, files []*ast.File) {
if llruntime.SkipToBuild(pkg.Path()) {

View File

@@ -705,7 +705,7 @@ func refineEx(dedup Deduper, ld *loader, response *packages.DriverResponse) ([]*
// return an error. Clients may need to handle such errors before
// proceeding with further analysis. The PrintErrors function is
// provided for convenient display of all errors.
func LoadEx(dedup Deduper, sizes func(types.Sizes) types.Sizes, cfg *Config, patterns ...string) ([]*Package, error) {
func LoadEx(dedup Deduper, sizes func(sizes types.Sizes, compiler, arch string) types.Sizes, cfg *Config, patterns ...string) ([]*Package, error) {
ld := newLoader(cfg)
response, external, err := defaultDriver(&ld.Config, patterns...)
if err != nil {
@@ -732,7 +732,7 @@ func LoadEx(dedup Deduper, sizes func(types.Sizes) types.Sizes, cfg *Config, pat
}
if sizes != nil {
ld.sizes = sizes(ld.sizes)
ld.sizes = sizes(ld.sizes, response.Compiler, response.Arch)
}
return refineEx(dedup, ld, response)
}