diff options
| author | Joey Jiao <quic_jiangenj@quicinc.com> | 2024-08-29 14:44:23 +0800 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-09-03 07:32:44 +0000 |
| commit | 048a931ade10001b4b08eb70fc3cad3de3083a3e (patch) | |
| tree | 5b318bc08b4cf9d213b7f608ffc31e0ead070768 /pkg | |
| parent | 8045124c794269555c41ada3c7e00a4efcbc8df3 (diff) | |
pkg/cover: fix loopvar bug in go func inside loop
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/cover/backend/dwarf.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/pkg/cover/backend/dwarf.go b/pkg/cover/backend/dwarf.go index 70ad06a63..e36991bc3 100644 --- a/pkg/cover/backend/dwarf.go +++ b/pkg/cover/backend/dwarf.go @@ -160,7 +160,9 @@ func makeDWARFUnsafe(params *dwarfParams) (*Impl, error) { } binC := make(chan binResult, len(modules)) for _, module := range modules { - go func(m *vminfo.KernelModule) { + // check https://go.dev/blog/loopvar-preview for loopvar bug + module := module + go func() { info := &symbolInfo{ tracePC: make(map[uint64]bool), traceCmp: make(map[uint64]bool), @@ -185,7 +187,7 @@ func makeDWARFUnsafe(params *dwarfParams) (*Impl, error) { return } binC <- binResult{symbols: result.Symbols, coverPoints: result.CoverPoints, ranges: ranges, units: units} - }(module) + }() if isKcovBrokenInCompiler(params.getCompilerVersion(module.Path)) { preciseCoverage = false } |
