[cfe-commits] RangeConstraintManager

Ted Kremenek kremenek at apple.com
Fri Feb 13 11:04:08 PST 2009


On Feb 13, 2009, at 9:01 AM, Ben Laurie wrote:

> It is my belief that we should never be asked if an empty range set
> could match any criterion - because the only way it can get into that
> state is by ruling out all possible values, which is surely
> impossible?

It depends on your algorithm.  Certainly no GRState should reference a  
RangeSet that has an empty set, but an empty set could be very useful  
in the internal logic of AssumeSymEQ.

Essentially, each 'Add' method adds another term to a conjunction of  
constraints, with the RangeSet representing the set of values that are  
possible that satisfy that conjunction.  Determine satisfiability of  
that conjunction just reduces down to testing the emptiness of the  
resultant RangeSet.

My idea was to consolidate AddEQ and CouldBeEQ into one short method  
that just added the constraint.  If the result was the empty set then  
we know that adding that constraint is infeasible.  For methods like  
AssumeSymEQ, they could just change if the RangetSet was empty to  
determine the value of 'isFeasible'. 



More information about the cfe-commits mailing list