Abstract
The ever-increasing reliance of today's society on software requires scalable and precise techniques for checking the correctness, reliability, and robustness of software. Object-oriented languages have been used extensively to build largescale systems, including Java and C++. While many scalable static analysis approaches for C and Java have been proposed, there has been comparatively little work on the static analysis of C++ programs. In this paper, we provide an abstract representation to model C++ objects, containers, references, raw pointers, and smart pointers. Further, we present a new analysis called lifetime dependency analysis, which allows us to precisely track the complex lifetime semantics of temporary objects in C++. Finally, we propose an implementation of our techniques and present promising results on a large variety of open-source software.
Author supplied keywords
Cite
CITATION STYLE
Xiao, X., Balakrishnan, G., Ivančić, F., Maeda, N., Gupta, A., & Chhetri, D. (2014). ARC++: Effective typestate and lifetime dependency analysis. In 2014 International Symposium on Software Testing and Analysis, ISSTA 2014 - Proceedings (pp. 116–126). Association for Computing Machinery, Inc. https://doi.org/10.1145/2610384.2610395
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.