diff --git a/internal/build/build.go b/internal/build/build.go index ec9d73c3..5e161979 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -88,15 +88,21 @@ const ( ) func Do(args []string, conf *Config) { - prog := llssa.NewProgram(nil) - sizes := prog.TypeSizes - flags, patterns, verbose := ParseArgs(args, buildFlags) cfg := &packages.Config{ Mode: loadSyntax | packages.NeedDeps | packages.NeedModule | packages.NeedExportFile, BuildFlags: flags, } + llssa.Initialize(llssa.InitAll) + if verbose { + llssa.SetDebug(llssa.DbgFlagAll) + cl.SetDebug(cl.DbgFlagAll) + } + + prog := llssa.NewProgram(nil) + sizes := prog.TypeSizes + if patterns == nil { patterns = []string{"."} } @@ -117,12 +123,6 @@ func Do(args []string, conf *Config) { return } - llssa.Initialize(llssa.InitAll) - if verbose { - llssa.SetDebug(llssa.DbgFlagAll) - cl.SetDebug(cl.DbgFlagAll) - } - var needRt bool var rt []*packages.Package load := func() []*packages.Package { diff --git a/ssa/type.go b/ssa/type.go index 0f9ed1f4..36bbc089 100644 --- a/ssa/type.go +++ b/ssa/type.go @@ -170,10 +170,12 @@ func SizeOf(prog Program, t Type, n ...int64) Expr { return prog.IntVal(size, prog.Uintptr()) } +/* func OffsetOf(prog Program, t Type, i int) Expr { offset := prog.OffsetOf(t, i) return prog.IntVal(offset, prog.Uintptr()) } +*/ func (p Program) PointerSize() int { return p.td.PointerSize()