//# include "exprData.i"
-/*@access constraint @*/
+/*@access constraint, exprNode @*/
constraint inequalitySubstituteUnsound (constraint c, constraintList p);
-constraintList reflectChanges (constraintList pre2, constraintList post1);
-constraint substitute (constraint c, constraintList p);
-constraint constraint_searchandreplace (constraint c, constraintExpr old, constraintExpr new);
-bool rangeCheck (arithType ar1, constraintExpr expr1, arithType ar2, constraintExpr expr2);
-bool satifies (constraint pre, constraint post);
-bool resolve (constraint c, constraintList p);
-constraintList reflectChangesEnsures (constraintList pre2, constraintList post1);
-constraint constraint_simplify (constraint c);
+static constraint constraint_searchandreplace (constraint c, constraintExpr old, constraintExpr new);
+//bool rangeCheck (arithType ar1, constraintExpr expr1, arithType ar2, constraintExpr expr2);
+//bool satifies (constraint pre, constraint post);
+//bool resolve (constraint c, constraintList p);
+//constraintList reflectChangesEnsures (constraintList pre2, constraintList post1);
+//constraint constraint_simplify (constraint c);
-constraintList constraintList_fixConflicts (constraintList list1, constraintList list2);
+//constraintList constraintList_fixConflicts (constraintList list1, constraintList list2);
-constraintList constraintList_subsumeEnsures (constraintList list1, constraintList list2);
+//constraintList constraintList_subsumeEnsures (constraintList list1, constraintList list2);
-constraintList constraintList_mergeEnsures (constraintList list1, constraintList list2);
+//constraintList constraintList_mergeEnsures (constraintList list1, constraintList list2);
constraint inequalitySubstitute (constraint c, constraintList p);
/*********************************************/
//ret = constraintList_makeNew();
- llassert(list1);
- llassert(list2);
+ llassert(constraintList_isDefined(list1) );
+ llassert(constraintList_isDefined(list1) );
DPRINTF(( message ("constraintList_mergeEnsures: list1 %s list2 %s",
constraintList_print(list1), constraintList_print(list2)
return TRUE;
temp = temp->or;
}
- while (temp);
+ while (constraint_isDefined(temp));
return FALSE;
}
}
-constraint doResolveOr (constraint c, constraintList post1, bool * resolved)
+constraint doResolveOr (constraint c, constraintList post1, /*@out@*/bool * resolved)
{
constraint ret;
constraint next;
ret->or = NULL;
ret = doResolve (ret, post1, resolved);
- while (next)
+ while (next != NULL)
{
curr = next;
next = curr->or;
//check if constraint in list1 and conflict with constraints in List2. If so we
//remove form list1 and change list2.
-constraintList constraintList_fixConflicts (/*@returned@*/constraintList list1, constraintList list2)
+constraintList constraintList_fixConflicts (constraintList list1, constraintList list2)
{
constraintList ret;
ret = constraintList_makeNew();
- llassert(list1);
+ llassert(constraintList_isDefined(list1) );
constraintList_elements (list1, el)
{
if (! conflict (el, list2) )
}
-bool resolve (constraint c, constraintList p)
+bool resolve (/*@observer@*/ constraint c, /*@observer@*/ constraintList p)
{
constraintList_elements (p, el)
{
// llassert(FALSE);
if ( (ar2 == LT) || (ar2 == LTE) || (ar2 == EQ) )
return TRUE;
+ break;
default:
return FALSE;
}
bool constraint_isAlwaysTrue (constraint c)
{
constraintExpr l, r;
- bool lHasConstant, rHasConstant;
- int lConstant, rConstant;
+ bool /*@unused@*/ lHasConstant, rHasConstant;
+ int /*@unused@*/ lConstant, rConstant;
l = c->lexpr;
r = c->expr;
default:
BADEXIT;
+ /*@notreached@*/
break;
}
}
break;
default:
BADEXIT;
+ /*@notreached@*/
break;
}
}
default:
BADEXIT;
+ /*@notreached@*/
break;
}
}
case GTE:
if (constraintExpr_similar (expr1, expr2) )
return TRUE;
+ /*@fallthrough@*/
case GT:
if (! (constraintExpr_canGetValue (expr1) &&
constraintExpr_canGetValue (expr2) ) )
case LTE:
if (constraintExpr_similar (expr1, expr2) )
return TRUE;
+ /*@fallthrough@*/
case LT:
if (! (constraintExpr_canGetValue (expr1) &&
constraintExpr_canGetValue (expr2) ) )
llcontbug((message("Unhandled case in switch: %s", arithType_print(ar1) ) ) );
}
BADEXIT;
- return FALSE;
}
return c;
}
-bool constraint_search (constraint c, constraintExpr old)
+bool constraint_search (constraint c, constraintExpr old) /*@*/
{
bool ret;
ret = FALSE;
constraint constraint_solveWithFlag (constraint c, bool *b)
{
-#warning abstraction
+
*b = FALSE;
if (c->lexpr->kind == binaryexpr)
{
case GTE:
return LTE;
default:
- llcontbug (("unexpected value: case not handled"));
+ llcontbug (message("unexpected value: case not handled"));
}
BADEXIT;
}
c->lexpr = constraintExpr_simplify (c->lexpr);
c->expr = constraintExpr_simplify (c->expr);
-#warning check this 5/11/01
-
if (c->lexpr->kind == binaryexpr)
{
c = constraint_solve (c);
{
c = constraint_swapLeftRight(c);
/*I don't think this will be an infinate loop*/
- constraint_simplify(c);
+ c = constraint_simplify(c);
}
return c;
}