Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release-1.11] Avoid dropping call edges in presence of identical invoke edges #57077

Open
wants to merge 1 commit into
base: release-1.11
Choose a base branch
from

Conversation

topolarity
Copy link
Member

The intermediate data structure here (used for edge de-duplication) was accidentally recording invoke edges as if they were call edges.

That bug is very frequently benign, but if there are identical call and invoke edges in the edge list and the invoke edge is scanned first, the call edge will be unsoundly dropped, leading to invalidation (#265) bugs.

Already fixed on master (by happy accident) as part of #54894

The intermediate data structure here (used for edge de-duplication)
was accidentally recording `invoke` edges as if they were `call` edges.

This bug is _very_ frequently benign, but if there are identical call
and invoke edges in the edge list and the invoke edge is scanned first,
the call edge will be unsoundly dropped, leading to invalidation (JuliaLang#265)
bugs.
@topolarity topolarity added backport 1.10 Change should be backported to the 1.10 release backport 1.11 Change should be backported to release-1.11 labels Jan 17, 2025
@topolarity topolarity requested a review from maleadt January 17, 2025 13:47
@Keno
Copy link
Member

Keno commented Jan 17, 2025

Can we get a test for this both here and on master?

@oscardssmith oscardssmith added bugfix This change fixes an existing bug compiler:latency Compiler latency compiler:inference Type inference and removed compiler:latency Compiler latency labels Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 1.10 Change should be backported to the 1.10 release backport 1.11 Change should be backported to release-1.11 bugfix This change fixes an existing bug compiler:inference Type inference
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants