blob: 39dbf7b4af8fd544b703500c39bdfe5c9da3d124 [file] [log] [blame]
Ted Kremeneke4367042010-02-08 21:36:47 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3<html>
4<head>
5 <title>Analyzer Development: C++ Support</title>
Benjamin Kramer665a8dc2012-01-15 15:26:07 +00006 <link type="text/css" rel="stylesheet" href="menu.css">
7 <link type="text/css" rel="stylesheet" href="content.css">
Ted Kremenekf4aed5f2010-02-12 21:05:44 +00008 <script type="text/javascript" src="scripts/menu.js"></script>
Ted Kremeneke4367042010-02-08 21:36:47 +00009</head>
10<body>
11
Ted Kremenek8bebc6e2010-02-09 23:05:59 +000012<div id="page">
Ted Kremeneke4367042010-02-08 21:36:47 +000013<!--#include virtual="menu.html.incl"-->
Ted Kremeneke4367042010-02-08 21:36:47 +000014<div id="content">
15
16<h1>C++ Support</h1>
17
18<p>The Clang frontend
19now <a href="http://clang.llvm.org/cxx_status.html">supports the
20majority of C++</a>. Support in the frontend for C++ language
21features, however, does not automatically translate into support for
22those features in the static analyzer. Language features need to be
23specifically modeled in the static analyzer so their semantics can be
24properly analyzed. Support for analyzing C++ and Objective-C++ files
25is currently extremely limited, and we are only encouraging those who
26are interested in contributing to the development of the analyzer to
27try this functionality out at this time.</p>
28
29<p>Listed here are a set of open tasks that are prerequisites for
30decent analysis of C++. This list is also not complete; new tasks
31will be added as deemed necessary.</p>
32
33<ul>
Benjamin Kramer665a8dc2012-01-15 15:26:07 +000034 <li>Control-Flow Graph Enhancements:
Ted Kremeneke4367042010-02-08 21:36:47 +000035 <ul>
36 <li>Model C++ destructors</li>
37 <li>Model C++ initializers (in constructors)</li>
38 </ul>
Benjamin Kramer665a8dc2012-01-15 15:26:07 +000039 </li>
40 <li>Path-Sensitive Analysis Engine (GRExprEngine):
Ted Kremeneke4367042010-02-08 21:36:47 +000041 <ul>
42 <li>Model C++ casts</li>
43 <li>Model C++ constructors</li>
44 <li>Model C++ destructors</li>
45 <li>Model <tt>new</tt> and <tt>delete</tt></li>
46 </ul>
Benjamin Kramer665a8dc2012-01-15 15:26:07 +000047 </li>
Ted Kremeneke4367042010-02-08 21:36:47 +000048</ul>
49
50</div>
Ted Kremenek8bebc6e2010-02-09 23:05:59 +000051</div>
Ted Kremeneke4367042010-02-08 21:36:47 +000052</body>
53</html>
54