mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-23 05:13:48 +00:00
Estimated hours taken: 12 compiler/dense_switch.m: Fix a bug introduced by Zoltan's changes to delay flushing of variables needed on backtracking. The bug was that it was the final code_info after a nondet dense_switch had not unset the top failure continuation. This caused the code generator to generate incorrect C code for the code following the dense switch: the generated C code clobbered the topmost redoip, rather than using a new temp frame. The fix was to ensure that we use the code_info from the end of one of the switch branches (for which we will have called code_info__unset_failure_cont from code_info__branch_end) rather than using the initial code_info and just resetting the live variables. compiler/code_gen.m: compiler/code_info.m: compiler/disj_info.m: compiler/ite_gen.m: Various minor improvements to the comments. tests/general/space.m: Regression test for the above-mentioned bug.
31 lines
281 B
Plaintext
31 lines
281 B
Plaintext
a2 d3 f3
|
|
a2 c3 e3
|
|
f2 a#2 d3
|
|
e2 g2 c3
|
|
f2 a2 d3
|
|
a2 c3 e3
|
|
a2 d3 f3
|
|
a2 c3 e3
|
|
g#2 c3 f3
|
|
c3 e3 g3
|
|
c3 f3 a3
|
|
d3 g3 a#3
|
|
c3 f3 a3
|
|
d3 g3 a#3
|
|
e3 g3 c4
|
|
d3 f3 a#3
|
|
c3 e3 a3
|
|
d3 f3 a#3
|
|
e3 a3 c4
|
|
f3 a#3 d4
|
|
e3 a3 c4
|
|
f3 a#3 d4
|
|
e3 g3 c4
|
|
d3 f3 a#3
|
|
c3 f3 a3
|
|
a#2 d3 g3
|
|
a2 c3 f3
|
|
g2 c3 e3
|
|
g2 a#2 d3
|
|
f2 a2 c3
|