diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-04-27 15:23:44 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-04-27 15:23:44 -0700 |
commit | e765f9e74abc81b738e8670c6d77d363894107b1 (patch) | |
tree | 3decf1582c59e590e8d71f12963e06f487dd7d76 /fork.mu | |
parent | b61557347aac31e6ba98dedbc16e49a69ff30912 (diff) | |
download | mu-e765f9e74abc81b738e8670c6d77d363894107b1.tar.gz |
2873 - fix a bug in converting conditional returns
This was an interaction between two transforms. The first turned: return-if ... into: jump-unless ..., 1:offset # skip next instruction return ... The second added an unconditional return at the end of the recipe if it didn't already exist (so that functions always end with a return). However, it was getting confused by the return instructions generated above, which look unconditional but sometimes get skipped. To fix this, conditional returns are now transformed into this: { break-unless ... return ... } Since the final instruction is now no longer a reply (but rather the '}' label), the second transform triggers and adds the unconditional return after it. This commit removes the final place marked 'BUG:' in the codebase yesterday (see commit 2870).
Diffstat (limited to 'fork.mu')
0 files changed, 0 insertions, 0 deletions