[m-rev.] for post-commit review by anyone: fix bug #28

Julien Fischer juliensf at csse.unimelb.edu.au
Mon Nov 19 17:43:35 AEDT 2007

On Mon, 19 Nov 2007, Zoltan Somogyi wrote:

> Fix bug #28 in Mantis. The only substantive change is to code_info.m; the
> changes to the other compiler modules are cosmetic only.
> compiler/code_info.m:
> 	Fix bug #28 in Mantis. The problem was with the code that generated the
> 	annotation giving the set of live lvalues at calls: it didn't delete
> 	from the set the registers used for passing dummy arguments, such as
> 	I/O states. A recursive call for an I/O predicate would thus compute
> 	the correct set of live lvalues at the start of the predicate body
> 	(in the case of the test case, {r1}), but the wrong set at the
> 	recursive call ((in the case of the test case, {r1,r2}, with r2
> 	being the register assigned to hold the I/O state argument). The bug
> 	was an abort caused by a sanity check looking for this kind of
> 	mismatch.
> compiler/c_util.m:
> 	Make two predicates into functions to make them easier to use.
> compiler/opt_debug.m:
> 	Use those functions.
> compiler/ml_code_gen.m:
> compiler/pragma_c_gen.m:
> 	Conform to the change to c_util.
> compiler/jumpopt.m:
> 	Delete unnecessary module qualifications.
> tests/valid/testxmlreader.m:
> tests/valid/xmlreader.m:
> 	A regression test for this bug. It is in valid rather than hard_coded
> 	because it cannot be made executable without libraries that not all
> 	machines have, and which it would be inappropriate to add to the test
> 	suite itself.
> tests/valid/Mmakefile:
> 	Enable the new test case.

That looks fine.

mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au

More information about the reviews mailing list