Static Type Determination for C++
Hemant D. Pande and Barbara G. Ryder
Abstract
Static type determination involves compile time calculation of the
type of object a pointer may point to at a particular program point
during some execution. We show that the problem of precise
interprocedural type determination is NP-hard in the presence of
inheritance, virtual methods and pointers. We highlight the
significance of type determination in improving code efficiency and
precision of other static analyses. We present a safe, approximate
algorithm for C++ programs with single level pointers, using the
conditional analysis technique [LR91]. We discuss the generalization
of our approach to analyze programs with multiple levels of pointer
dereferencing.
Download the full text of this paper in
ASCII (936 bytes) and
POSTSCRIPT (232,993 bytes) form.
To Become a USENIX Member, please see our
Membership Information.