Patent ID: 8250553

Claim:
Method for detecting problems caused by access to incompletely initialized data storage in assembler programs comprising: a) Generating an internal representation of control flow of the source code of the assembler program by using standard techniques of compiler constructions, wherein said internal representation contains nodes for every statement found in said source code and a directed edge for every possible flow of control between said nodes, b) Attributing data attributes to said nodes and/or said edges, wherein said data attributes are used to store information about how many bits within the data storage can be guaranteed to be initialized, c) Applying a data-flow analysis method to said internal representation of the control flow of the source code for determining how many bits of the data storage can be guaranteed to be initialized, comprising: c1) Initializing all of said attributes of said internal representation of the control flow of the source code with an initial value, c2) Providing access to the following input parameters: numbers of bits read by said statement associated to said node, number of bits written by said statement, and all attributes of the nodes from which a directed edge to said node for the attribute is currently being calculated, c3) calculating for each of said nodes a real value for said attribute associated to said node based on said parameters, c4) repeating calculating step in c3) until for all attributes the newly computed real value remains unchanged, d) checking for each node whether the instruction reads more bits than are guaranteed to be initialized, and e) generating one or more error messages responsive to the problem; wherein said calculation of said real values additionally records which statement is a reason why one or more bits of the data storage are unavailable and provides that information in addition to a report of accesses to only partly initialized registers.