An Inference Algorithm for the Static Verification of Pointer Manipulation

Pascal Fradet, Ronan Gaugne, Daniel Le Métayer, 35 - Rennes (France). Inst. de Recherche en Informatique et Systemes Aleatoires (IRISA) Centre National de la Recherche Scientifique (CNRS), 35 (France). Inst. de Recherche en Informatique et Systemes Aleatoires (IRISA) Rennes-1 Univ., 35 (France). Inst . de Recherche en Informatique et Systemes Aleatoires (IRISA) Institut National des Sciences Appliquees de Rennes (INSA), 35 - Rennes (France). Inst. de Recherche en= Informatique et Systemes Aleatoires (IRISA) Institut National de Recherche en Informatique et en Automatique (INRIA) · OpenGrey (Institut de l'Information Scientifique et Technique) · 1996

The incorrect use of pointers is one of the most common source of bugs. As a consequence, any kind of static code checking capable of detecting potential bugs at compile time is welcome. This paper presents a static analysis for the detection of incorrect accesses to memory (dereferences of invalid pointers). A pointer may be invalid because it has not been initialised or because it refers to a memory location which has been deallocated. The analyser is derived from an axiomatisation of alias and connectivity properties which is shown to be sound with respect to the natural semantics of the language. It deals with dynamically allocated data structures and it is accurate enough to handle circular structures.

Read the paper · More papers on PaperTik