ARC++: Effective typestate and lifetime dependency analysis

9Citations
Citations of this article
22Readers
Mendeley users who have this article in their library.
Get full text

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.

Cite

CITATION STYLE

APA

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.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free