llassert(constraintList_isDefined(list2) );
DPRINTF(( message ("constraintList_mergeEnsures: list1 %s list2 %s",
- constraintList_print(list1), constraintList_print(list2)
+ constraintList_unparse(list1), constraintList_unparse(list2)
)));
ret = constraintList_fixConflicts (list1, list2);
constraintList_free(ret);
DPRINTF(( message ("constraintList_mergeEnsures: returning %s ",
- constraintList_print(temp) )
+ constraintList_unparse(temp) )
));
constraintList ret;
constraintList temp;
- DPRINTF((message ("constraintList_mergeRequires: merging %s and %s ", constraintList_print (list1), constraintList_print(list2) ) ) );
+ DPRINTF((message ("constraintList_mergeRequires: merging %s and %s ", constraintList_unparse (list1), constraintList_unparse(list2) ) ) );
if (context_getFlag (FLG_REDUNDANTCONSTRAINTS) )
{
/* get constraints in list1 not satified by list2 */
temp = constraintList_reflectChanges(list1, list2);
- DPRINTF((message ("constraintList_mergeRequires: temp = %s", constraintList_print(temp) ) ) );
+ DPRINTF((message ("constraintList_mergeRequires: temp = %s", constraintList_unparse(temp) ) ) );
/*get constraints in list2 not satified by temp*/
ret = constraintList_reflectChanges(list2, temp);
- DPRINTF((message ("constraintList_mergeRequires: ret = %s", constraintList_print(ret) ) ) );
+ DPRINTF((message ("constraintList_mergeRequires: ret = %s", constraintList_unparse(ret) ) ) );
ret = constraintList_addListFree (ret, temp);
- DPRINTF((message ("constraintList_mergeRequires: returning %s", constraintList_print(ret) ) ) );
+ DPRINTF((message ("constraintList_mergeRequires: returning %s", constraintList_unparse(ret) ) ) );
return ret;
}
parent->ensuresConstraints = constraintList_copy (child2->ensuresConstraints);
DPRINTF((message ("Copied child constraints: pre: %s and post: %s",
- constraintList_print( child2->requiresConstraints),
- constraintList_print (child2->ensuresConstraints)
+ constraintList_unparse( child2->requiresConstraints),
+ constraintList_unparse (child2->ensuresConstraints)
)
));
return;
llassert(!exprNode_isError (child1) && ! exprNode_isError(child2) );
DPRINTF((message ("Child constraints are %s %s and %s %s",
- constraintList_print (child1->requiresConstraints),
- constraintList_print (child1->ensuresConstraints),
- constraintList_print (child2->requiresConstraints),
- constraintList_print (child2->ensuresConstraints)
+ constraintList_unparse (child1->requiresConstraints),
+ constraintList_unparse (child1->ensuresConstraints),
+ constraintList_unparse (child2->requiresConstraints),
+ constraintList_unparse (child2->ensuresConstraints)
) ) );
parent->requiresConstraints = temp2;
DPRINTF((message ("Parent requires constraints are %s ",
- constraintList_print (parent->requiresConstraints)
+ constraintList_unparse (parent->requiresConstraints)
) ) );
constraintList_free(parent->ensuresConstraints);
DPRINTF((message ("Parent constraints are %s and %s ",
- constraintList_print (parent->requiresConstraints),
- constraintList_print (parent->ensuresConstraints)
+ constraintList_unparse (parent->requiresConstraints),
+ constraintList_unparse (parent->ensuresConstraints)
) ) );
}
constraintList_elements (list1, el)
{
- DPRINTF ((message ("Examining %s", constraint_print (el) ) ) );
+ DPRINTF ((message ("Examining %s", constraint_unparse (el) ) ) );
if (!constraintList_resolve (el, list2) )
{
constraint temp;
}
else
{
- DPRINTF ((message ("Subsuming %s", constraint_print (el) ) ) );
+ DPRINTF ((message ("Subsuming %s", constraint_unparse (el) ) ) );
}
} end_constraintList_elements;
llassert (! context_getFlag (FLG_ORCONSTRAINT) );
ret = constraintList_makeNew();
- DPRINTF((message ("reflectChanges: lists %s and %s", constraintList_print(pre2), constraintList_print(post1) )));
+ DPRINTF((message ("reflectChanges: lists %s and %s", constraintList_unparse(pre2), constraintList_unparse(post1) )));
constraintList_elements (pre2, el)
{
}
} end_constraintList_elements;
- DPRINTF((message ("reflectChanges: returning %s", constraintList_print(ret) ) ) );
+ DPRINTF((message ("reflectChanges: returning %s", constraintList_unparse(ret) ) ) );
return ret;
}
c = orig;
- DPRINTF((message("constraint_addor: oring %s onto %s", constraint_printOr(orConstr), constraint_printOr(orig) ) ));
+ DPRINTF((message("constraint_addor: oring %s onto %s", constraint_unparseOr(orConstr), constraint_unparseOr(orig) ) ));
while (c->or != NULL)
{
c->or = constraint_copy(orConstr);
- DPRINTF((message("constraint_addor: returning %s",constraint_printOr(orig) ) ));
+ DPRINTF((message("constraint_addor: returning %s",constraint_unparseOr(orig) ) ));
return orig;
}
llassert(constraint_isDefined(c) );
- DPRINTF(( message("resolveOr: constraint %s and list %s", constraint_printOr(c), constraintList_print(list) ) ));
+ DPRINTF(( message("resolveOr: constraint %s and list %s", constraint_unparseOr(c), constraintList_unparse(list) ) ));
temp = c;
llassert(constraint_isDefined (c ) );
DPRINTF((message("doResolve:: call on constraint c = : %q and constraintList %q",
- constraint_printOr(c), constraintList_print(post1)
+ constraint_unparseOr(c), constraintList_unparse(post1)
)
));
temp = constraint_substitute (c, post1);
DPRINTF((message("doResolve:: after substitute temp is %q",
- constraint_printOr(temp)
+ constraint_unparseOr(temp)
)
));
DPRINTF((
message("doResolve: adding %s ",
- constraint_printOr(tempSub)
+ constraint_unparseOr(tempSub)
)
));
DPRINTF((
message("doResolve: not adding %s ",
- constraint_printOr(temp2)
+ constraint_unparseOr(temp2)
)
));
DPRINTF((
message("doResolve: adding %s ",
- constraint_printOr(tempSub)
+ constraint_unparseOr(tempSub)
)
));
DPRINTF((
message("doResolve: not adding %s ",
- constraint_printOr(temp3)
+ constraint_unparseOr(temp3)
)
));
constraint next;
constraint curr;
- DPRINTF(( message("doResolveOr: constraint %s and list %s", constraint_printOr(c), constraintList_print(post1) ) ));
+ DPRINTF(( message("doResolveOr: constraint %s and list %s", constraint_unparseOr(c), constraintList_unparse(post1) ) ));
*resolved = FALSE;
ret = constraint_addOr (ret, curr);
constraint_free(curr);
}
+
+ DPRINTF(( message("doResolveOr: returning ret = %s", constraint_unparseOr(ret) ) ));
+
return ret;
}
constraintList ret;
constraint temp;
ret = constraintList_makeNew();
- DPRINTF((message ("constraintList_reflectChangesOr: lists %s and %s", constraintList_print(pre2), constraintList_print(post1) )));
+ DPRINTF((message ("constraintList_reflectChangesOr: lists %s and %s", constraintList_unparse(pre2), constraintList_unparse(post1) )));
constraintList_elements (pre2, el)
{
} end_constraintList_elements;
- DPRINTF((message ("constraintList_reflectChangesOr: returning %s", constraintList_print(ret) ) ) );
+ DPRINTF((message ("constraintList_reflectChangesOr: returning %s", constraintList_unparse(ret) ) ) );
return ret;
}
}
else
{
- DPRINTF ((message ("Resolved away %s ", constraint_print(el) ) ) );
+ DPRINTF ((message ("Resolved away %s ", constraint_unparse(el) ) ) );
}
} end_constraintList_elements;
static bool constraint_conflict (constraint c1, constraint c2)
{
-
- llassert(constraint_isDefined(c1) );
- llassert(constraint_isDefined(c2) );
+ if (!constraint_isDefined(c1) || !constraint_isDefined(c2))
+ {
+ return FALSE;
+ }
if (constraintExpr_similar (c1->lexpr, c2->lexpr))
{
if (constraintTerm_isExprNode(term) )
{
- DPRINTF ((message ("%s conflicts with %s ", constraint_print (c1), constraint_print(c2) ) ) );
+ DPRINTF ((message ("%s conflicts with %s ", constraint_unparse (c1), constraint_unparse(c2) ) ) );
return TRUE;
}
}
if (constraint_tooDeep(c1) || constraint_tooDeep(c2) )
{
- DPRINTF ((message ("%s conflicts with %s (constraint is too deep", constraint_print (c1), constraint_print(c2) ) ) );
+ DPRINTF ((message ("%s conflicts with %s (constraint is too deep", constraint_unparse (c1), constraint_unparse(c2) ) ) );
return TRUE;
}
- DPRINTF ((message ("%s doesn't conflict with %s ", constraint_print (c1), constraint_print(c2) ) ) );
+ DPRINTF ((message ("%s doesn't conflict with %s ", constraint_unparse (c1), constraint_unparse(c2) ) ) );
return FALSE;
static bool constraintResolve_satisfies (constraint pre, constraint post)
{
- llassert (constraint_isDefined(pre));
- llassert (constraint_isDefined(post));
+ if (!constraint_isDefined (pre))
+ {
+ return TRUE;
+ }
+
+ if (!constraint_isDefined(post))
+ {
+ return FALSE;
+ }
if (constraint_isAlwaysTrue (pre))
return TRUE;
{
constraintExpr l, r, buf1, buf2, con;
- DPRINTF(( message("sizeOfMaxSet: checking %s ", constraint_print(c) )
+ DPRINTF(( message("sizeOfMaxSet: checking %s ", constraint_unparse(c) )
));
llassert (constraint_isDefined(c) );
l = c->lexpr;
r = c->expr;
- DPRINTF(( message("constraint_IsAlwaysTrue:examining %s", constraint_print(c) ) ));
+ DPRINTF(( message("constraint_IsAlwaysTrue:examining %s", constraint_unparse(c) ) ));
if (sizeOfMaxSet(c) )
return TRUE;
{
switch (c->ar)
{
- case CASTEQ:
case EQ:
case GTE:
case LTE:
{
constraintExpr_free(l);
constraintExpr_free(r);
- DPRINTF(( message("Constraint %s is not always true", constraint_print(c) ) ));
+ DPRINTF(( message("Constraint %s is not always true", constraint_unparse(c) ) ));
return FALSE;
}
{
fileloc loc1, loc2, loc3;
- DPRINTF ((message("Start adjust on %s and %s", constraint_print(substitute),
- constraint_print(old))
+ DPRINTF ((message("Start adjust on %s and %s", constraint_unparse(substitute),
+ constraint_unparse(old))
));
llassert(constraint_isDefined(substitute));
if (fileloc_closer (loc1, loc3, loc2))
{
constraintExpr temp;
- DPRINTF ((message("Doing adjust on %s", constraint_print(substitute) )
+ DPRINTF ((message("Doing adjust on %s", constraint_unparse(substitute) )
));
temp = substitute->lexpr;
substitute->lexpr = substitute->expr;
{
DPRINTF((message ("inequalitySubstitute Replacing %q in %q with %q",
constraintExpr_print (c->expr),
- constraint_print (c),
+ constraint_unparse (c),
constraintExpr_print (el->expr) )
));
temp2 = constraintExpr_copy (el->lexpr);
static constraint inequalitySubstituteStrong (/*@returned@*/ constraint c, constraintList p)
{
- DPRINTF (( message ("inequalitySubstituteStrong examining substituting for %q", constraint_print(c) ) ));
+ DPRINTF (( message ("inequalitySubstituteStrong examining substituting for %q", constraint_unparse(c) ) ));
llassert(constraint_isDefined(c) );
return c;
DPRINTF (( message ("inequalitySubstituteStrong examining substituting for %q with %q",
- constraint_print(c), constraintList_print(p) ) ));
+ constraint_unparse(c), constraintList_unparse(p) ) ));
constraintList_elements (p, el)
{
- DPRINTF (( message ("inequalitySubstituteStrong examining substituting %s on %s", constraint_print(el), constraint_print(c) ) ));
+ DPRINTF (( message ("inequalitySubstituteStrong examining substituting %s on %s", constraint_unparse(el), constraint_unparse(c) ) ));
llassert(constraint_isDefined(el) );
if ((el->ar == LT ) || (el->ar == LTE ) )
{
DPRINTF((message ("inequalitySubstitute Replacing %s in %s with %s",
constraintExpr_print (c->expr),
- constraint_print (c),
+ constraint_unparse (c),
constraintExpr_print (el->expr) )
));
temp2 = constraintExpr_copy (el->expr);
llassert(constraint_isDefined(el) );
- DPRINTF (( message ("inequalitySubstituteUnsound examining substituting %s on %s", constraint_print(el), constraint_print(c) ) ));
+ DPRINTF (( message ("inequalitySubstituteUnsound examining substituting %s on %s", constraint_unparse(el), constraint_unparse(c) ) ));
if (( el->ar == LTE) || (el->ar == LT) )
{
constraintExpr temp2;
/*@only@*/ constraint constraint_substitute (/*@observer@*/ /*@temp@*/ constraint c, constraintList p)
{
- constraint ret;
+ constraint ret = constraint_copy (c);
- ret = constraint_copy(c);
constraintList_elements (p, el)
{
- llassert(constraint_isDefined(el) );
- if ( el->ar == EQ)
- if (!constraint_conflict (ret, el) )
-
- {
- constraint temp;
-
- temp = constraint_copy(el);
-
- temp = constraint_adjust(temp, ret);
-
- llassert(constraint_isDefined(temp) );
-
-
- DPRINTF((message ("constraint_substitute :: Substituting in %s using %s",
- constraint_print (ret), constraint_print (temp)
- ) ) );
-
+ if (constraint_isDefined (el))
+ {
+ if ( el->ar == EQ)
+ if (!constraint_conflict (ret, el))
+ {
+ constraint temp = constraint_copy(el);
+ temp = constraint_adjust(temp, ret);
+
+ llassert(constraint_isDefined(temp) );
+
+
+ DPRINTF (("constraint_substitute :: Substituting in %s using %s",
+ constraint_unparse (ret), constraint_unparse (temp)));
- ret = constraint_searchandreplace (ret, temp->lexpr, temp->expr);
- DPRINTF(( message (" constraint_substitute :: The new constraint is %s", constraint_print (ret) ) ));
- constraint_free(temp);
- }
+ ret = constraint_searchandreplace (ret, temp->lexpr, temp->expr);
+ DPRINTF (("constraint_substitute :: The new constraint is %s", constraint_unparse (ret)));;
+ constraint_free(temp);
+ }
+ }
}
end_constraintList_elements;
- ret = constraint_simplify(ret);
-
- DPRINTF(( message (" constraint_substitute :: The final new constraint is %s", constraint_print (ret) ) ));
-
+ ret = constraint_simplify (ret);
+ DPRINTF(( message (" constraint_substitute :: The final new constraint is %s", constraint_unparse (ret) ) ));
return ret;
}
llassert(constraint_isDefined(c) );
- DPRINTF((message ("Solving %s\n", constraint_print(c) ) ) );
+ DPRINTF((message ("Solving %s\n", constraint_unparse(c) ) ) );
c->expr = constraintExpr_solveBinaryExpr (c->lexpr, c->expr);
- DPRINTF((message ("Solved and got %s\n", constraint_print(c) ) ) );
+ DPRINTF((message ("Solved and got %s\n", constraint_unparse(c) ) ) );
return c;
}
llassert(constraint_isDefined(c) );
- DPRINTF(( message("constraint_simplify on %q ", constraint_print(c) ) ));
+ DPRINTF(( message("constraint_simplify on %q ", constraint_unparse(c) ) ));
if (constraint_tooDeep(c))
{
- DPRINTF(( message("constraint_simplify: constraint to complex aborting %q ", constraint_print(c) ) ));
+ DPRINTF(( message("constraint_simplify: constraint to complex aborting %q ", constraint_unparse(c) ) ));
return c;
}
c = constraint_simplify(c);
}
- DPRINTF(( message("constraint_simplify returning %q ", constraint_print(c) ) ));
+ DPRINTF(( message("constraint_simplify returning %q ", constraint_unparse(c) ) ));
return c;
}