work around HP optimiser bug

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@264 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
stasinos 2002-01-03 16:31:39 +00:00
parent 75bd0c45f5
commit ae9c3660b8
1 changed files with 10 additions and 3 deletions

View File

@ -2337,8 +2337,12 @@ i_log_upd_recorded(LogUpdDBProp AtProp)
twork = Deref(ARG2); /* now working with ARG2 */
if (IsVarTerm(twork)) {
mask = key = 0;
EXTRA_CBACK_ARG(3,2) = MkIntegerTerm(((Int)mask));
EXTRA_CBACK_ARG(3,3) = MkIntegerTerm(((Int)key));
/* EXTRA_CBACK_ARG(3,2) is being assigned the value MkIntegerTerm(((Int)mask)),
and EXTRA_CBACK_ARG(3,3) the value MkIntegerTerm(((Int)key)) which is here 0.
This is working around a bug in the O2 optimiser of the compiler that ships
with HP-UX 10.20: cc Rel. 10.32.30, April 1999. */
EXTRA_CBACK_ARG(3,2) = MkIntegerTerm(((Int)0));
EXTRA_CBACK_ARG(3,3) = MkIntegerTerm(((Int)0));
B->cp_h = H;
while ((TermDB = GetDBTerm(ref)) == (CELL)0) {
/* make sure the garbage collector sees what we want it to see! */
@ -2352,9 +2356,12 @@ i_log_upd_recorded(LogUpdDBProp AtProp)
cut_fail();
}
} else if (IsAtomOrIntTerm(twork)) {
/* EXTRA_CBACK_ARG(3,2) is being assigned the value MkIntegerTerm(((Int)mask)),
which is here 0. This is working around a bug in the O2 optimiser of the
compiler that ships with HP-UX 10.20: cc Rel. 10.32.30, April 1999. */
mask = 0;
EXTRA_CBACK_ARG(3,2) = MkIntegerTerm(((Int)0));
key = Unsigned(twork);
EXTRA_CBACK_ARG(3,2) = MkIntegerTerm(((Int)mask));
EXTRA_CBACK_ARG(3,3) = MkIntegerTerm(((Int)key));
B->cp_h = H;
do {