[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