You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Keep reflect.MakeFunc libffi closure state (closure, Signature, callback data) reachable through the returned function environment.
Put goroutine startup records in scanned uncollectable runtime memory until the entry call returns, so reflect-generated function args stay visible while the new thread starts.
Add stable test/go coverage for reflect-generated functions launched as goroutines under a racing runtime.GC loop.
Remove only the now-passing fixedbugs/issue25897a.go xfails.
Notes
Full GOROOT CI is slow/disabled locally; I ran only the requested targeted GOROOT case.
Normal PR CI should run from the fork branch. I did not push anything to xgo-dev/llgo.
Focused tests
Reproduced before fix with xfail disabled: go test ./test/goroot -count=1 -run TestGoRootRunCases -args -goroot /opt/homebrew/Cellar/go@1.24/1.24.11/libexec -dirs fixedbugs -case '^fixedbugs/issue25897a\\.go$' -xfail /tmp/llgo-empty-xfail.yaml
go test ./test/go -run '^TestReflectMakeFuncGoroutineStartup$' -count=1
go test ./test/go -count=1
go run ./cmd/llgo test -a -run '^TestReflectMakeFuncGoroutineStartup$' ./test/go
go test ./ssa -run '^TestGoClosureStartupUsesGCManagedMemory$' -count=1
go test ./ssa -run 'TestGoClosureStartupUsesGCManagedMemory|TestMakeClosureWithCtx|TestClosure' -count=1
(cd runtime && go test ./... -count=1)
go test ./test/goroot -count=1 -run TestGoRootRunCases -args -goroot /opt/homebrew/Cellar/go@1.24/1.24.11/libexec -dirs fixedbugs -case '^fixedbugs/issue25897a\\.go$' -xfail /tmp/llgo-empty-xfail.yaml -llgo /tmp/llgo-dev
go test ./test/goroot -count=1 -run TestGoRootRunCases -args -goroot /opt/homebrew/Cellar/go@1.24/1.24.11/libexec -dirs fixedbugs -case '^fixedbugs/issue25897a\\.go$' -llgo /tmp/llgo-dev
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
reflect.MakeFunclibffi closure state (closure,Signature, callback data) reachable through the returned function environment.test/gocoverage for reflect-generated functions launched as goroutines under a racingruntime.GCloop.fixedbugs/issue25897a.goxfails.Notes
xgo-dev/llgo.Focused tests
go test ./test/goroot -count=1 -run TestGoRootRunCases -args -goroot /opt/homebrew/Cellar/go@1.24/1.24.11/libexec -dirs fixedbugs -case '^fixedbugs/issue25897a\\.go$' -xfail /tmp/llgo-empty-xfail.yamlgo test ./test/go -run '^TestReflectMakeFuncGoroutineStartup$' -count=1go test ./test/go -count=1go run ./cmd/llgo test -a -run '^TestReflectMakeFuncGoroutineStartup$' ./test/gogo test ./ssa -run '^TestGoClosureStartupUsesGCManagedMemory$' -count=1go test ./ssa -run 'TestGoClosureStartupUsesGCManagedMemory|TestMakeClosureWithCtx|TestClosure' -count=1(cd runtime && go test ./... -count=1)go test ./test/goroot -count=1 -run TestGoRootRunCases -args -goroot /opt/homebrew/Cellar/go@1.24/1.24.11/libexec -dirs fixedbugs -case '^fixedbugs/issue25897a\\.go$' -xfail /tmp/llgo-empty-xfail.yaml -llgo /tmp/llgo-devgo test ./test/goroot -count=1 -run TestGoRootRunCases -args -goroot /opt/homebrew/Cellar/go@1.24/1.24.11/libexec -dirs fixedbugs -case '^fixedbugs/issue25897a\\.go$' -llgo /tmp/llgo-dev