8000 analysis/dfa/sparse: schedule mapped value users by dajiaohuang · Pull Request #1823 · dominikh/go-tools · GitHub
[go: up one dir, main page]

Skip to content

analysis/dfa/sparse: schedule mapped value users - #1823

Open
dajiaohuang wants to merge 1 commit into
dominikh:masterfrom
dajiaohuang:fix/sparse-forward-mapping-referrers
Open

dajiaohuang wants to merge 1 commit into
dominikh:masterfrom
dajiaohuang:fix/sparse-forward-mapping-referrers

Conversation

@dajiaohuang
@dajiaohuang dajiaohuang commented Oct 2, 2026 •
Copy link
Copy Markdown

Forward updates abstract state for each Mapping.Value returned by the transfer function. That mapped value may differ from the instruction currently being processed, as supported by the Propagate(dst, src, ...) helper. When its state changes, the worklist must therefore reschedule users of the mapped value.

The previous code rescheduled instr.Referrers() instead. This can leave users of the changed destination unvisited; processing an instruction whose Referrers returns nil can also dereference a nil list. The patch uses d.Value.Referrers() and skips an absent list.

Validation: inspected the production worklist loop, Mapping/Transfer contract and Propagate helper; git diff --check was previously run. No tests or build were run for this source-only submission. No complete analyzer/runtime validation is claimed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0