TY - GEN
T1 - ARC++
T2 - 23rd International Symposium on Software Testing and Analysis, ISSTA 2014
AU - Xiao, Xusheng
AU - Balakrishnan, Gogul
AU - Ivančić, Franjo
AU - Maeda, Naoto
AU - Gupta, Aarti
AU - Chhetri, Deepak
N1 - Publisher Copyright:
Copyright 2014 ACM.
PY - 2014/7/21
Y1 - 2014/7/21
N2 - 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.
AB - 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.
KW - Abstract representation
KW - Bug finding
KW - C++
KW - Static analysis
KW - Typestate analysis
UR - http://www.scopus.com/inward/record.url?scp=84942744267&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84942744267&partnerID=8YFLogxK
U2 - 10.1145/2610384.2610395
DO - 10.1145/2610384.2610395
M3 - Conference contribution
AN - SCOPUS:84942744267
T3 - 2014 International Symposium on Software Testing and Analysis, ISSTA 2014 - Proceedings
SP - 116
EP - 126
BT - 2014 International Symposium on Software Testing and Analysis, ISSTA 2014 - Proceedings
PB - Association for Computing Machinery, Inc
Y2 - 21 July 2014 through 25 July 2014
ER -