[m-rev.] Trivial diff: fix state variables bug

Ralph Becket rafe at cs.mu.OZ.AU
Wed Feb 19 16:15:22 AEDT 2003


Estimated hours taken: 4
Branches: main

compiler/make_hlds.m:
	Fixed a bug in the state variables transformation whereby
	if-then-else expressions were not being handled properly and
	causing information about state variables to be lost.

Index: compiler/make_hlds.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/make_hlds.m,v
retrieving revision 1.433
diff -u -r1.433 make_hlds.m
--- compiler/make_hlds.m	12 Feb 2003 22:58:08 -0000	1.433
+++ compiler/make_hlds.m	19 Feb 2003 05:07:20 -0000
@@ -10207,7 +10207,12 @@
 :- mode finish_if_then_else_expr_condition(in, in, out) is det.
 
 finish_if_then_else_expr_condition(SInfoBefore, SInfo0, SInfo) :-
-	SInfo = ( SInfo0 ^ ctxt := SInfoBefore ^ ctxt ).
+	SInfo = (((( SInfo0 ^ external_dot := SInfoBefore ^ external_dot )
+	                    ^ dot          := (SInfo0 ^ dot) `overlay`
+		 	                         (SInfoBefore ^ dot)  )
+	                    ^ colon        := (SInfo0 ^ colon) `overlay`
+		 	                         (SInfoBefore ^ colon)  )
+	                    ^ ctxt         := SInfoBefore ^ ctxt         ).
 
 %------------------------------------------------------------------------------%
 
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list