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