blob: 654f4861222dfd622247cc0a19b59677f4f6db0e [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>
6 <link type="text/css" rel="stylesheet" href="menu.css" />
7 <link type="text/css" rel="stylesheet" href="content.css" />
8</head>
9<body>
10
11<!--#include virtual="menu.html.incl"-->
12
13<div id="content">
14
15<h1>C++ Support</h1>
16
17<p>The Clang frontend
18now <a href="http://clang.llvm.org/cxx_status.html">supports the
19majority of C++</a>. Support in the frontend for C++ language
20features, however, does not automatically translate into support for
21those features in the static analyzer. Language features need to be
22specifically modeled in the static analyzer so their semantics can be
23properly analyzed. Support for analyzing C++ and Objective-C++ files
24is currently extremely limited, and we are only encouraging those who
25are interested in contributing to the development of the analyzer to
26try this functionality out at this time.</p>
27
28<p>Listed here are a set of open tasks that are prerequisites for
29decent analysis of C++. This list is also not complete; new tasks
30will be added as deemed necessary.</p>
31
32<ul>
33 <li>Control-Flow Graph Enhancements:</li>
34 <ul>
35 <li>Model C++ destructors</li>
36 <li>Model C++ initializers (in constructors)</li>
37 </ul>
38 <li>Path-Sensitive Analysis Engine (GRExprEngine):</li>
39 <ul>
40 <li>Model C++ casts</li>
41 <li>Model C++ constructors</li>
42 <li>Model C++ destructors</li>
43 <li>Model <tt>new</tt> and <tt>delete</tt></li>
44 </ul>
45</ul>
46
47</div>
48</body>
49</html>
50