Patent ID: 8930927
Filing Date: 2015-01-06
Classification: G06F

Abstract:
1. A method for performing a static analysis of a source code program, the method comprising: identifying, by a data processing system in a current program view of a first source code module of the source code program compiled by a first compiler during a static compilation of the first source code module by the first compiler, a symbol with an assigned definition pointing to data of a first declared type located at a memory location, wherein the memory location is also referenced by another symbol in a second source code module of the source code program compiled by a second compiler outside the current program view available to the first compiler, and wherein the source code program comprises the first source code module and the second source code module, and wherein the data processing system displays the current program view; receiving, by the data processing system, a set of type-based aliasing rules for indirect memory access for the source code program; identifying, by the data processing system, a potential aliasing error, during the static compilation of the first source code module of the source code program, based on the set of type-based aliasing rules, that occurs in the second source code module of the source code program, wherein the identifying, by the data processing system, of the potential aliasing error includes identifying at least one symbol having a potential to cause an error during execution of the source code program by using the data at the memory location using an assigned definition of a different type than the first declared type; determining, by the data processing system, that the assigned definition reaches an instruction that branches to the second source code module of the source code program; identifying, by the data processing system, a location in the second source code module of the source code program compiled by the second compiler where the other symbol points to data of a second declared type at the memory location that is incompatible with the first declared type; and generating, by the data processing system, a diagnostic message for the symbol with the assigned definition based on the identified potential aliasing error, wherein at least one diagnostic message pinpoints an area in the second source code module of the source code program that includes the other symbol pointing to data of the second declared type, and wherein the second source code module outside the current program view comprises a set of shared libraries that is combined with the first source code module when the source code program is loaded into memory and executed by the data processing system.