Patent ID: 7624304

Claim:
One or more computer-readable storage media having computer-executable instructions for performing a method comprising: for a set of one or more integer expressions in a plurality of program instructions, responsive to encountering the one or more integer expressions, creating representations of ordering relationships between respective of the one or more integer expressions, wherein the ordering relationships represent a programmer assumption that an integer will not overflow or underflow; determining which of the ordering relationships are explicitly validated by one or more of the program instructions, the one or more of the program instructions, when executed, performing a bounds check to determine whether one of the one or more ordering relationships are satisfied; and identifying one or more ordering relationships that are not explicitly validated by the program instructions as unvalidated ordering relationships, wherein the unvalidated ordering relationships are indicative of at least one defect in the program instructions; wherein the creating representations of ordering relationships comprises creating a graph having directed edges, the graph comprising a first node representing a first one of the one or more integer expressions, a second node representing a second one of the one or more integer expressions, the first and second nodes connected by a directed edge representing at least one of the ordering relationships, the at least one of the ordering relationships relating the integer expressions represented by the first and second nodes and based at least on a greater than, a less than, a less than or equal to, a greater than or equal to, or an equal to relationship.