test/goroot: classify precise GC and nil-check cases - #2313
Merged
cpunion merged 5 commits intoAug 13, 2026
Merged
Conversation
Move four exact cmd/compile diagnostic mismatches out of the LLGo compatibility xfail count. Keep issue4405 and bombad in xfail because open PR xgo-dev#2265 addresses them. There are currently no compile-directive xfails.
Contributor
There was a problem hiding this comment.
Review summary
This PR reclassifies 4 errorcheck cases (fixedbugs/issue4776.go, issue13266.go, issue20789.go, bug050.go) from xfails in test/goroot/xfail.yaml to not_applicable in test/goroot/notapplicable.yaml, with reasons rewritten to the shared "not applicable" format.
Verified against the harness invariants:
- All 4 selectors were fully removed from
xfail.yamland appear exactly once innotapplicable.yaml, so the "appears in both files" check (runner_unit_test.go:155-158) and the runtime double-match guard (runner_test.go:355) stay satisfied. - All 4 reasons satisfy
TestRepositoryExpectationsAreSeparated(start withnot applicable:, containLLGoandcompatibility goal). - Pure data change; no matching-logic or performance impact.
One inline finding on accuracy of the bug050.go reason (verified against upstream source). No security or performance issues found.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This was referenced Aug 13, 2026
LLGo baseline benchmarks
Program measurements
Core language and compiler benchmarks
Compared with |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
nilptr2.goandnilptr.goas not applicable because they require cmd/compile-style comprehensive explicit nil checks for derived or large-offset addresses that may not faultnotapplicable.yamlScope
BDWGC conservatively scans native stack and register roots. LLGo therefore does not provide Go's precise PC-specific liveness maps, typed roots that exclude pointer-shaped integers, typed cross-frame stack-object tracing, or exact finalizer timing. The thirteen GC and finalizer cases exercise those implementation properties rather than portable language behavior LLGo currently plans to reproduce.
LLGo preserves the required nil panic for an unused dereference in #2256. The remaining
nilptr2.goandnilptr.gocases require a broader cmd/compile-style nil-check insertion strategy for address-only, derived-address, and large-offset operations. LLGo currently relies on LLVM and target memory faults for those forms and does not plan to reproduce that compiler strategy.Parser and diagnostic
errorcheckcases are deliberately left inxfail.yaml; this PR does not classify them as not applicable.The test directives are unchanged and all cases continue to run. This only separates behavior outside the current compatibility goal from the remaining actionable xfail count.
Validation
go test ./test/goroot -run '^(TestRepositoryExpectationsAreSeparated|TestNotApplicableMatch|TestXFailMatch)$' -count=1git diff --check