Fixed the bug with labels not being duplicated across branches #54
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.
Fixes #53
The bug in the referenced issue was because of jumps and jump targets being duplicated across branches due to "failure to merge". This causes the jump to target a label that is in a different branch messing up the loop_finder invariant.
We fixed this by inserting labels at all possible jump targets for a particular static label. We then maintain the current label from the stmt block and update it when we visit a new one. This way a goto stmt always sees a structured label.
Sample 50 has been added to test the same.