Skip to content

Conversation

aschackmull
Copy link
Contributor

In the cases where an annotated exit node is a singleton basic block, then it failed to show up as a JoinBlockPredecessor of the exit node. This manifested in spurious controls-tuples involving the exit block when controls was calculated on top of splitting.

@Copilot Copilot AI review requested due to automatic review settings September 17, 2025 14:40
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes a bug where annotated exit nodes in singleton basic blocks were not being recognized as JoinBlockPredecessors, which caused incorrect control flow analysis when using splitting.

  • Adds a missing case to handle annotated exit nodes as join block predecessors
  • Ensures singleton basic blocks containing annotated exit nodes are properly included in control flow splitting
  • Assigns appropriate kind values (2 for normal exit, 3 for non-normal exit) to distinguish exit node types

@aschackmull
Copy link
Contributor Author

dca is uneventful

@aschackmull aschackmull requested a review from a team as a code owner September 18, 2025 06:14
@aschackmull aschackmull added the no-change-note-required This PR does not need a change note label Sep 18, 2025
@github-actions github-actions bot added the Ruby label Sep 18, 2025
Copy link
Contributor

@paldepind paldepind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing this 👍

@aschackmull aschackmull merged commit 8f85964 into github:main Sep 18, 2025
46 of 47 checks passed
@aschackmull aschackmull deleted the shared/cfg-fix-joinblock-pred branch September 18, 2025 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-change-note-required This PR does not need a change note Ruby
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants