|View Issue Details [ Jump to Notes ]||[ Issue History ] [ Print ]|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000032||mercury||Bug||public||2007-12-14 18:37||2007-12-14 18:37|
|Target Version||Fixed in Version|
|Summary||0000032: loop invariant optimization generates invalid HLDS|
|Description||The bug can be reproduced by|
mmc -Cv check_typeclass.m -Dmost -d145 -d150 -O5
The stage 150 HLDS dump shows that the loop invariant predicate for the is_valid_instance_type predicate has the argument HeadVar__6 in the argument list *twice*, in both cases with the mode unique>>unique, even though the right thing for loop_inv to do would have been not to pass it at all (it is computed *before* the loop is entered).
I think loop_inv might be confused by the fact that the sixth position in the "loop" call is an unwanted output.
|Additional Information||This bug occurs with version 1.117 of check_typeclass.m. I have a diff to make is_valid_instance_type look nicer, but the version with the change does not tickle this bug.|
|Tags||No tags attached.|
|2007-12-14 18:37||zs||New Issue|