Ted Kremenek | e436704 | 2010-02-08 21:36:47 +0000 | [diff] [blame] | 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 | </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 |
| 18 | now <a href="http://clang.llvm.org/cxx_status.html">supports the |
| 19 | majority of C++</a>. Support in the frontend for C++ language |
| 20 | features, however, does not automatically translate into support for |
| 21 | those features in the static analyzer. Language features need to be |
| 22 | specifically modeled in the static analyzer so their semantics can be |
| 23 | properly analyzed. Support for analyzing C++ and Objective-C++ files |
| 24 | is currently extremely limited, and we are only encouraging those who |
| 25 | are interested in contributing to the development of the analyzer to |
| 26 | try this functionality out at this time.</p> |
| 27 | |
| 28 | <p>Listed here are a set of open tasks that are prerequisites for |
| 29 | decent analysis of C++. This list is also not complete; new tasks |
| 30 | will 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 | |