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> 11 12<div id="page"> 13<!--#include virtual="menu.html.incl"--> 14<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> 34 <li>Control-Flow Graph Enhancements: 35 <ul> 36 <li>Model C++ destructors</li> 37 <li>Model C++ initializers (in constructors)</li> 38 </ul> 39 </li> 40 <li>Path-Sensitive Analysis Engine (GRExprEngine): 41 <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> 47 </li> 48</ul> 49 50</div> 51</div> 52</body> 53</html> 54 55