Check out the new USENIX Web site.

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.