AbstractStatic 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 functions, and pointers. We highlight the significance of type determination in improving code efficiency and precision of other static analyses. First, we present a safe, approximate type determination algorithm for C++ programs with single level pointers, using the conditional analysis technique [LR91]. Then we present a generalization of this approach to simultaneously solve the aliasing and type determination problems for C++ programs with multiple levels of pointer dereferencing, and explain why this is a more complicated analysis.
RightsThis Item is protected by copyright and/or related rights.You are free to use this Item in any way that is permitted by the copyright and related rights legislation that applies to your use.For other uses you need to obtain permission from the rights-holder(s).