xref: /aosp_15_r20/external/clang/www/analyzer/release_notes.html (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2*67e74705SXin Li          "http://www.w3.org/TR/html4/strict.dtd">
3*67e74705SXin Li<html>
4*67e74705SXin Li<head>
5*67e74705SXin Li  <title>Release notes for checker-XXX builds</title>
6*67e74705SXin Li  <link type="text/css" rel="stylesheet" href="menu.css">
7*67e74705SXin Li  <link type="text/css" rel="stylesheet" href="content.css">
8*67e74705SXin Li  <script type="text/javascript" src="scripts/menu.js"></script>
9*67e74705SXin Li</head>
10*67e74705SXin Li<body>
11*67e74705SXin Li
12*67e74705SXin Li<div id="page">
13*67e74705SXin Li<!--#include virtual="menu.html.incl"-->
14*67e74705SXin Li<div id="content">
15*67e74705SXin Li
16*67e74705SXin Li<h1>Release notes for <tt>checker-XXX</tt> builds</h1>
17*67e74705SXin Li<h4 id="checker_278">checker-278</h4>
18*67e74705SXin Li<p><b>built:</b> February 5, 2016</br>
19*67e74705SXin Li	<b>download:</b> <a href="downloads/checker-278.tar.bz2">checker-278.tar.bz2</a></p>
20*67e74705SXin Li	<p><b>highlights:</b></p>
21*67e74705SXin Li	<ul>
22*67e74705SXin Li    <li>Greatly improves analysis of C++ lambdas, including interprocedural analysis of lambda applications and reduced 'dead store'
23*67e74705SXin Li        false positives for variables captured by reference.</li>
24*67e74705SXin Li    <li>The analyzer now checks for misuse of 'vfork()'. This check is enabled by default.</li>
25*67e74705SXin Li    <li>The analyzer can now detect excessively-padded structs. This check can be enabled by passing the following
26*67e74705SXin Li        command to scan-build:<br />
27*67e74705SXin Li  &nbsp;&nbsp;<tt>-enable-checker optin.performance.Padding</tt> </li>
28*67e74705SXin Li    <li>The checks to detect misuse of <tt>_Nonnull</tt> are now enabled by default.</li>
29*67e74705SXin Li    <li>The checks to detect misuse of Objective-C generics are now enabled by default.</li>
30*67e74705SXin Li    <li>Many miscellaneous improvements.</li>
31*67e74705SXin Li	</ul>
32*67e74705SXin Li
33*67e74705SXin Li<h4 id="checker_277">checker-277</h4>
34*67e74705SXin Li<p><b>built:</b> October 28, 2015</br>
35*67e74705SXin Li	<b>download:</b> <a href="downloads/checker-277.tar.bz2">checker-277.tar.bz2</a></p>
36*67e74705SXin Li	<p><b>highlights:</b></p>
37*67e74705SXin Li	<ul>
38*67e74705SXin Li    <li>Includes about 20 months of change to Clang itself.</li>
39*67e74705SXin Li    <li>New checker for C++ leaks is turned on by default.</li>
40*67e74705SXin Li    <li>Added various small checks and bug fixes.</li>
41*67e74705SXin Li    <li>Added experimental checkers for Objective-C:</li>
42*67e74705SXin Li    <ul>
43*67e74705SXin Li        <li>New localizability checks:
44*67e74705SXin Li        <ul>
45*67e74705SXin Li            <li>Checker warning about uses of non-localized <tt>NSString</tt>s passed to UI methods expecting localized strings.</li>
46*67e74705SXin Li            <li>Checker warning when the comment argument is missing from <tt>NSLocalizedString</tt> macros.</li>
47*67e74705SXin Li            <li>These can be enabled by passing the following command to <tt>scan-build</tt>:
48*67e74705SXin Li<br />
49*67e74705SXin Li  &nbsp;&nbsp;<tt>-enable-checker alpha.osx.cocoa.NonLocalizedStringChecker,alpha.osx.cocoa.EmptyLocalizationContextChecker</tt>
50*67e74705SXin Li</li>
51*67e74705SXin Li        </ul>
52*67e74705SXin Li        </li>
53*67e74705SXin Li        <li>New checks for <tt>_Nonnull</tt> type qualifiers. These can be enabled with:
54*67e74705SXin Li<br />
55*67e74705SXin Li  &nbsp;&nbsp;<tt>-enable-checker nullability.NullPassedToNonnull,nullability.NullReturnedFromNonnull</tt></li>
56*67e74705SXin Li        <li>New checks for misuse of Objective-C generics. These can be enabled with <tt>-enable-checker alpha.osx.cocoa.ObjCGenerics</tt>.</li>
57*67e74705SXin Li    </ul>
58*67e74705SXin Li    <li>Support for <tt>cf_returns_retained</tt> and <tt>cf_returns_not_retained</tt> attributes in out-parameters.</li>
59*67e74705SXin Li    <li>The analyzer now creates one state for a range switch case instead of multiple, resulting in performance improvements.</li>
60*67e74705SXin Li    <li>Now requires OS X 10.7 or later.
61*67e74705SXin Li	</ul>
62*67e74705SXin Li
63*67e74705SXin Li<h4 id="checker_276">checker-276</h4>
64*67e74705SXin Li<p><b>built:</b> February 19, 2014</br>
65*67e74705SXin Li	<b>download:</b> <a href="downloads/checker-276.tar.bz2">checker-276.tar.bz2</a></p>
66*67e74705SXin Li	<p><b>highlights:</b></p>
67*67e74705SXin Li	<ul>
68*67e74705SXin Li    <li>Includes about 9 months of change to Clang itself (improved C++11/14 support, etc.)</li>
69*67e74705SXin Li    <li>More precise modeling of Objective-C properties, which enables the analyzer to find more bugs.</li>
70*67e74705SXin Li    <li>Includes a new "missing call to <tt>super</tt>" warning, which looks for common pattern in iOS/OSX APIs that require chaining a call to a super class's implementation of a method.</li>
71*67e74705SXin Li    <li>Accepts <tt>-arch arm64</tt> (which may be passed by Xcode 5.0), but for the time being analyzes code in such cases as <tt>-arch armv7s</tt>.</li>
72*67e74705SXin Li    <li>Many sundry fixes, improvements to C++ support, etc.</li>
73*67e74705SXin Li	</ul>
74*67e74705SXin Li
75*67e74705SXin Li<h4 id="checker_275">checker-275</h4>
76*67e74705SXin Li<p><b>built:</b> May 23, 2013</br>
77*67e74705SXin Li	<b>download:</b> <a href="downloads/checker-275.tar.bz2">checker-275.tar.bz2</a></p>
78*67e74705SXin Li	<p><b>highlights:</b></p>
79*67e74705SXin Li	<ul>
80*67e74705SXin Li    <li>Xcode: Includes a new arrow layout algorithm for issue presentation within Xcode.  The goal is for interprocedural bug reports to look cleaner and less busy (and easier to read).  Feedback appreciated.</li>
81*67e74705SXin Li    <li>Xcode: Bugs that occur within header code (e.g., C++) are now reported within the callers in the main source file.  For example, if you misuse a C++ function declared in a header the primary diagnostic will be in the caller (in the main source file).  The full expanded path, however, will show the bug in the header code as well.  These kind of cross-file issues are currently only support by Xcode, not the HTML output.</li>
82*67e74705SXin Li    <li>This build is built with LLVM's Link-Time Optimization (LTO), which should make it slightly faster.</li>
83*67e74705SXin Li    <li>LTO also reduces the download size (about 19% smaller than checker-274).</li>
84*67e74705SXin Li    <li>Many sundry fixes.</li>
85*67e74705SXin Li	</ul>
86*67e74705SXin Li
87*67e74705SXin Li<h4 id="checker_274">checker-274</h4>
88*67e74705SXin Li<p><b>built:</b> April 23, 2013</br>
89*67e74705SXin Li	<b>download:</b> <a href="https://attache.apple.com/AttacheWeb/dl?id=ATCdb3165f4406a4589b5878a22494c3b79">checker-274.tar.bz2</a></p>
90*67e74705SXin Li	<p><b>highlights:</b></p>
91*67e74705SXin Li	<ul>
92*67e74705SXin Li    <li>Improved use-after-free and mismatched deallocator checking.</li>
93*67e74705SXin Li    <li>Diagnostic polish.</li>
94*67e74705SXin Li    <li>Fixes crashes found in checker-273.</li>
95*67e74705SXin Li	</ul>
96*67e74705SXin Li
97*67e74705SXin Li<h4 id="checker_273">checker-273</h4>
98*67e74705SXin Li<p><b>built:</b> April 8, 2013</br>
99*67e74705SXin Li	<b>download:</b> <a href="https://attache.apple.com/AttacheWeb/dl?id=ATCdefcc852a99546cfbaba2a960e07478e">checker-273.tar.bz2</a></p>
100*67e74705SXin Li	<p><b>highlights:</b></p>
101*67e74705SXin Li	<ul>
102*67e74705SXin Li    <li>Additional checks for misuse of Foundation collection APIs.
103*67e74705SXin Li    <li>New C++ checker for attempting to create a reference to null.</li>
104*67e74705SXin Li    <li>New use-after-free checker for C++ 'delete'.</li>
105*67e74705SXin Li    <li>New checker for simple cases of mismatched allocators and deallocators, e.g. "delete malloc(4);"</li>
106*67e74705SXin Li    <li>Support for basic interprocedural analysis of C++ destructors.</li>
107*67e74705SXin Li    <li>Additional heuristics for suppressing null pointer false positives.</li>
108*67e74705SXin Li    <li>Misc. bug fixes and performance enhancements.</li>
109*67e74705SXin Li	</ul>
110*67e74705SXin Li
111*67e74705SXin Li<h4 id="checker_272">checker-272</h4>
112*67e74705SXin Li<p><b>built:</b> March 1, 2013</p>
113*67e74705SXin Li	<p><b>highlights:</b></p>
114*67e74705SXin Li	<ul>
115*67e74705SXin Li        <li>Better modeling of C++ constructors:
116*67e74705SXin Li            <ul>
117*67e74705SXin Li                <li>Interprocedural analysis support for constructors of types with trivial destructors</li>
118*67e74705SXin Li                <li>Efficient model of trivial copy and move constructors</li>
119*67e74705SXin Li            </ul>
120*67e74705SXin Li        </li>
121*67e74705SXin Li        <li>Better diagnostics for loops that execute 0 times</li>
122*67e74705SXin Li        <li>Fixes a linking issue that prevented the checker from running on OS X v10.6 and earlier</li>
123*67e74705SXin Li        <li>Fixes for misc. crashes and false positives</li>
124*67e74705SXin Li	</ul>
125*67e74705SXin Li
126*67e74705SXin Li<h4 id="checker_271">checker-271</h4>
127*67e74705SXin Li<p><b>built:</b> February 8, 2013</p>
128*67e74705SXin Li	<p><b>highlights:</b></p>
129*67e74705SXin Li	<ul>
130*67e74705SXin Li        <li>Faster analysis for <tt>scan-build xcodebuild</tt> when using Xcode 4.6 and higher:
131*67e74705SXin Li            <ul>
132*67e74705SXin Li                <li><tt>scan-build</tt> now uses Xcode's built-in interposition mechanism for the static analyzer to provide faster builds while doing static analysis (PCH files are now built).</li>
133*67e74705SXin Li                <li>This change also allows <tt>scan-build</tt> to have better support for iOS project analysis without having to specifying weird SDK settings to <tt>scan-build</tt>.</li>
134*67e74705SXin Li            </ul></li>
135*67e74705SXin Li        <li>Better diagnostics for implicitly-defined member functions in C++.</li>
136*67e74705SXin Li        <li>New warning for <tt>malloc</tt>/<tt>free</tt> checker when passing <tt>malloc</tt>'ed pointer with non-zero offset to <tt>free()</tt>.
137*67e74705SXin Li        <li>Fixes for misc. parser crashes.</li>
138*67e74705SXin Li        <li>Newer than the static analyzer version in Xcode 4.6</li>
139*67e74705SXin Li	</ul>
140*67e74705SXin Li
141*67e74705SXin Li<h4 id="checker_270">checker-270</h4>
142*67e74705SXin Li<p><b>built:</b> January 4, 2013</p>
143*67e74705SXin Li	<p><b>highlights:</b></p>
144*67e74705SXin Li	<ul>
145*67e74705SXin Li		<li>Major performance enhancements to speed up interprocedural analysis.</li>
146*67e74705SXin Li		<li>Misc. bug fixes.</li>
147*67e74705SXin Li	</ul>
148*67e74705SXin Li
149*67e74705SXin Li<h4 id="checker_269">checker-269</h4>
150*67e74705SXin Li<p><b>built:</b> September 25, 2012</p>
151*67e74705SXin Li	<p><b>highlights:</b></p>
152*67e74705SXin Li	<ul>
153*67e74705SXin Li		<li>Significantly improves interprocedural analysis for Objective-C.</li>
154*67e74705SXin Li		<li>Numerous bug fixes and heuristics to reduce false positives reported
155*67e74705SXin Li			over checker-268.</li>
156*67e74705SXin Li	</ul>
157*67e74705SXin Li
158*67e74705SXin Li<h4 id="checker_268">checker-268</h4>
159*67e74705SXin Li<p><b>built:</b> September 11, 2012</p>
160*67e74705SXin Li	<p><b>highlights:</b></p>
161*67e74705SXin Li
162*67e74705SXin Li<ul>
163*67e74705SXin Li	<li>Adds initial interprocedural analysis support for C++ and Objective-C. This will greatly improve analysis coverage and find deeper bugs in Objective-C and C++ code.</li>
164*67e74705SXin Li	<li>Contains a static analyzer newer than Xcode 4.4.</li>
165*67e74705SXin Li</ul>
166*67e74705SXin Li
167*67e74705SXin Li<p>NOTE: this checker build includes a <i>huge</i> number of changes. It has the potential to find many more bugs, but may report new kinds of false positives. We'd like to know about
168*67e74705SXin Lithese, and any other problems you encounter. When you encounter an issue, please <a href="/filing_bugs.html">file a bug report</a>.</p>
169*67e74705SXin Li
170*67e74705SXin Li<h4 id="checker_267">checker-267</h4>
171*67e74705SXin Li<p><b>built:</b> June 1, 2012</p>
172*67e74705SXin Li   <p><b>highlights:</b></p>
173*67e74705SXin Li
174*67e74705SXin Li<p>Adds basic interprocedural analysis support for blocks.</p>
175*67e74705SXin Li
176*67e74705SXin Li<h4 id="checker_266">checker-266</h4>
177*67e74705SXin Li<p><b>built:</b> May 23, 2012</p>
178*67e74705SXin Li   <p><b>highlights:</b></p>
179*67e74705SXin Li
180*67e74705SXin Li<p>Contains numerous stability fixes over checker-266, especially when analyzing C++11 code.</p>
181*67e74705SXin Li
182*67e74705SXin Li<h4 id="checker_265">checker-265</h4>
183*67e74705SXin Li<p><b>built:</b> May 8, 2012</p>
184*67e74705SXin Li   <p><b>highlights:</b></p>
185*67e74705SXin Li
186*67e74705SXin Li<p>This release contains a fix for a major crasher introduced in checker-264, and various refinements to
187*67e74705SXin Liimprove the precision and reduce the false positive rate of the analyzer. It also enables a new unix.MallocSizeof check, which reports
188*67e74705SXin Liinconsistencies between the casted type of the return value of a 'malloc/calloc/realloc' call and the operand
189*67e74705SXin Liof sizeof expressions contained within its argument(s).</p>
190*67e74705SXin Li
191*67e74705SXin Li<h4 id="checker_264">checker-264</h4>
192*67e74705SXin Li
193*67e74705SXin Li<p><b>built:</b> April 26, 2012</p>
194*67e74705SXin Li  <p><b>highlights:</b></p>
195*67e74705SXin Li
196*67e74705SXin Li<p>This release contains misc. bug fixes and performance enhancements over checker-263, including
197*67e74705SXin Li  a reduction of some kinds of false positives related to the malloc() checker.</p>
198*67e74705SXin Li
199*67e74705SXin Li<h4 id="checker_263">checker-263</h4>
200*67e74705SXin Li
201*67e74705SXin Li<p><b>built:</b> March 22, 2012</p>
202*67e74705SXin Li<p><b>highlights:</b></p>
203*67e74705SXin Li
204*67e74705SXin Li<ul>
205*67e74705SXin Li<li>Fixes several serious bugs with inter-procedural analysis, including a case where retain/releases would be &quot;double-counted&quot;.</li>
206*67e74705SXin Li</ul>
207*67e74705SXin Li
208*67e74705SXin Li<h4 id="checker_262">checker-262</h4>
209*67e74705SXin Li
210*67e74705SXin Li<p><b>built: </b>March 15, 2012</p>
211*67e74705SXin Li<p><b>highlights:</b></p>
212*67e74705SXin Li
213*67e74705SXin Li<ul>
214*67e74705SXin Li  <li>Enables experimental interprocedural analysis (within a file), which greatly amplifies the analyzer's ability to find issues.</li>
215*67e74705SXin Li  <li>Many bug fixes to the malloc/free checker.</li>
216*67e74705SXin Li  <li>Support for new Objective-C NSArray/NSDictionary/NSNumber literals syntax, and Objective-C container subscripting.</li>
217*67e74705SXin Li</ul>
218*67e74705SXin Li
219*67e74705SXin Li<p>NOTE: This build contains new interprocedural analysis that allows the analyzer to find more complicated bugs that span function boundaries.  It may have problems, performance issues, etc.  We'd like to <a href="/filing_bugs.html">hear about them</a>.
220*67e74705SXin Li
221*67e74705SXin Li<h4 id="checker_261">checker-261</h4>
222*67e74705SXin Li
223*67e74705SXin Li<p><b>built: </b>February 22, 2012<br>
224*67e74705SXin Li<p><b>highlights:</b></p>
225*67e74705SXin Li
226*67e74705SXin Li<ul>
227*67e74705SXin Li  <li>Contains a new experimental malloc/free checker.</li>
228*67e74705SXin Li  <li>Better support for projects using ARC.</li>
229*67e74705SXin Li  <li>Warns about null pointers passed as arguments to C string functions.</li>
230*67e74705SXin Li  <li>Warns about common anti-patterns in 'strncat' size argument, which can lead to buffer overflows.</li>
231*67e74705SXin Li  <li>set-xcode-analyzer now supports self-contained Xcode.app (Xcode 4.3 and later).</li>
232*67e74705SXin Li  <li>Contains a newer version of the analyzer than Xcode 4.3.</li>
233*67e74705SXin Li  <li>Misc. bug fixes and performance work.</li>
234*67e74705SXin Li</ul>
235*67e74705SXin Li
236*67e74705SXin Li<h4 id="checker_260">checker-260</h4>
237*67e74705SXin Li
238*67e74705SXin Li<p><b>built: </b>January 25, 2012<br>
239*67e74705SXin Li<p><b>highlights:</b></p>
240*67e74705SXin Li
241*67e74705SXin Li<p>This is essentially the same as checker-259, but enables the following <i>experimental</i> checkers (please provide feedback):</p>
242*67e74705SXin Li
243*67e74705SXin Li<ul>
244*67e74705SXin Li  <li>Warns about unsafe uses of CFArrayCreate, CFSetCreate, and CFDictionaryCreate</li>
245*67e74705SXin Li  <li>Warns about unsafe uses of getpw, gets, which are sources of buffer overflows</li>
246*67e74705SXin Li  <li>Warns about unsafe uses of mktemp and mktemps, which can lead to insecure temporary files</li>
247*67e74705SXin Li  <li>Warns about unsafe uses of vfork, which is <a href="https://www.securecoding.cert.org/confluence/display/seccode/POS33-C.+Do+not+use+vfork()">insecure</a> to use</li>
248*67e74705SXin Li  <li>Warns about not checking the return values of setuid, setgid, seteuid, setegid, setreuid, setregid (another security issue)</li>
249*67e74705SXin Li</ul>
250*67e74705SXin Li
251*67e74705SXin Li<h4 id="checker_259">checker-259</h4>
252*67e74705SXin Li
253*67e74705SXin Li<p><b>built: </b>January 25, 2012<br>
254*67e74705SXin Li<p><b>highlights:</b></p>
255*67e74705SXin Li
256*67e74705SXin Li<ul>
257*67e74705SXin Li  <li>Contains a newer version of the analyzer than the one shipped in Xcode 4.2.</li>
258*67e74705SXin Li  <li>Significant performance optimizations to reduce memory usage of the analyzer.</li>
259*67e74705SXin Li  <li>Tweaks to scan-build to have it work more easily with Xcode projects using Clang.</li>
260*67e74705SXin Li  <li>Numerous bug fixes to better support code using ARC.</li>
261*67e74705SXin Li</ul>
262*67e74705SXin Li
263*67e74705SXin Li<h4 id="checker_258">checker-258</h4>
264*67e74705SXin Li
265*67e74705SXin Li<p><b>built: </b>October 13, 2011<br>
266*67e74705SXin Li<p><b>highlights:</b></p>
267*67e74705SXin Li
268*67e74705SXin Li<ul>
269*67e74705SXin Li  <li>Contains a newer version of the analyzer than the one shipped in Xcode 4.2.</li>
270*67e74705SXin Li  <li>Adds a new security checker for looking at correct uses of the Mac OS KeyChain API.</li>
271*67e74705SXin Li  <li>Supports ARC (please file bugs where you see issues)</li>
272*67e74705SXin Li  <li>Major under-the-cover changes.  This should result in more precise results in some cases, but this is laying the groundwork for major improvements.  Please file bugs where you see regressions or issues.</li>
273*67e74705SXin Li</ul>
274*67e74705SXin Li
275*67e74705SXin Li<h4 id="checker_257">checker-257</h4>
276*67e74705SXin Li
277*67e74705SXin Li<p><b>built: </b>May 25, 2011<br>
278*67e74705SXin Li<p><b>highlights:</b></p>
279*67e74705SXin Li
280*67e74705SXin Li<ul>
281*67e74705SXin Li  <li>The analyzer is now far more aggressive with checking conformance with Core Foundation conventions.  Any function that returns a CF type must now obey the Core Foundation naming conventions, or use the <a href="/annotations.html#attr_cf_returns_retained">cf_returns_retained</a> or <a href="/annotations.html#attr_cf_returns_not_retained">cf_returns_not_retained</a> annotations.</li>
282*67e74705SXin Li  <li>Fixed a serious regression where the analyzer would not analyze Objective-C methods in class extensions.</li>
283*67e74705SXin Li  <li>Misc. bug fixes to improve analyzer precision.
284*67e74705SXin Li  </li>
285*67e74705SXin Li</ul>
286*67e74705SXin Li
287*67e74705SXin Li<h4 id="checker_256">checker-256</h4>
288*67e74705SXin Li
289*67e74705SXin Li<p><b>built: </b>April 13, 2011<br>
290*67e74705SXin Li<p><b>highlights:</b></p>
291*67e74705SXin Li
292*67e74705SXin Li<ul>
293*67e74705SXin Li  <li>Lots of bug fixes and improvements to analyzer precision (fewer false positives, possibly more bugs found).
294*67e74705SXin Li  <li>Introductory analysis support for C++ and Objective-C++.
295*67e74705SXin Li</ul>
296*67e74705SXin Li
297*67e74705SXin Li<p>This build contains basic support for C++ and Objective-C++ that is ready to be tried out
298*67e74705SXin Li  by general users.  It is still in its infancy, but establishes a baseline for things to come.  The main hope is that it can find some
299*67e74705SXin Li  issues and have a reasonable false positive rate.</p>
300*67e74705SXin Li
301*67e74705SXin Li<p><b>Please</b> <a href="/filing_bugs.html">file bugs</a> when you see issues of any kind so we can assess
302*67e74705SXin Li  where development on C++ analysis support needs to be focused.</p>
303*67e74705SXin Li
304*67e74705SXin Li<p>To try out C++ analysis support, it should work out of the box using <tt>scan-build</tt>.  If you are using this checker build
305*67e74705SXin Li  as a replacement to the analyzer bundled with Xcode, first use the <tt>set-xcode-analyzer</tt> script to <a href="/xcode.html">change Xcode to use
306*67e74705SXin Li  your version of the analyzer</a>.  You will then need to modify one configuration file in Xcode to enable C++ analysis support.  This can
307*67e74705SXin Li  be done with the following steps:</p>
308*67e74705SXin Li
309*67e74705SXin Li<ol>
310*67e74705SXin Li  <li>Find the clang .xcspec file:
311*67e74705SXin Li<pre>$ cd /Developer/Library
312*67e74705SXin Li$ find . | grep xcspec | grep Clang
313*67e74705SXin Li./Xcode/<b>&lt;SNIP&gt;</b>/Clang LLVM 1.0.xcplugin/Contents/Resources/Clang LLVM 1.0.xcspec
314*67e74705SXin Li</pre></li>
315*67e74705SXin Li  <li>The exact location of the file may vary depending on your installation of Xcode.  Edit that file, and look for the string &quot;--analyze&quot;:
316*67e74705SXin Li<pre>
317*67e74705SXin Li  SourceFileOption = "--analyze";
318*67e74705SXin Li  FileTypes = (
319*67e74705SXin Li      "sourcecode.c.c",
320*67e74705SXin Li      "sourcecode.c.objc",
321*67e74705SXin Li  );
322*67e74705SXin Li  ...
323*67e74705SXin Li</pre>
324*67e74705SXin Li  Change the &quot;FileTypes&quot; entry to:
325*67e74705SXin Li<pre>
326*67e74705SXin Li  FileTypes = (
327*67e74705SXin Li      "sourcecode.c.c",
328*67e74705SXin Li      "sourcecode.c.objc",
329*67e74705SXin Li      "sourcecode.cpp.cpp",
330*67e74705SXin Li      "sourcecode.cpp.objcpp",
331*67e74705SXin Li  );
332*67e74705SXin Li</pre></li>
333*67e74705SXin Li<li>Restart Xcode.</li>
334*67e74705SXin Li</ol>
335*67e74705SXin Li
336*67e74705SXin Li<h4 id="checker_255">checker-255</h4>
337*67e74705SXin Li
338*67e74705SXin Li<p><b>built: </b> February 11, 2011<br>
339*67e74705SXin Li<p><b>highlights:</b></p>
340*67e74705SXin Li
341*67e74705SXin Li<ul>
342*67e74705SXin Li<li>Mac OS X builds are now Intel <tt>i386</tt> and <tt>x86_64</tt> only (no <tt>ppc</tt> support)</li>
343*67e74705SXin Li<li>Turns on new <tt>-init</tt> method checker by default</li>
344*67e74705SXin Li<li>Reduces memory usage of analyzer by 10%</li>
345*67e74705SXin Li<li>Misc. fixes to reduce false positives on dead stores and idempotent operations.</li>
346*67e74705SXin Li</ul>
347*67e74705SXin Li
348*67e74705SXin Li<h4 id="checker_254">checker-254</h4>
349*67e74705SXin Li
350*67e74705SXin Li<p><b>built: </b> January 27, 2011<br>
351*67e74705SXin Li<p><b>highlights:</b></p>
352*67e74705SXin Li
353*67e74705SXin Li<ul>
354*67e74705SXin Li<li>Introduces new <tt>-init</tt> method checker to check if a super class's init method is properly called.</li>
355*67e74705SXin Li<li>Objective-C retain/release checker now reasons about calls to property accessor methods (setter/getter).</li>
356*67e74705SXin Li<li>Introduces new attribute <a href="annotations.html#attr_ns_consumes_self">ns_consumes_self</a> to educate the Objective-C retain/release checker about custom &quot;init-like&quot; methods that do not follow the standard Cocoa naming conventions.</li>
357*67e74705SXin Li<li>Introduces new attributes <a href="annotations.html#attr_ns_consumed">ns_consumed</a> and <a href="annotations.html#attr_cf_consumed">cf_consumed</a> to educate the Objective-C retain/release checker about methods/functions that decrement the reference count of a parameter.</li>
358*67e74705SXin Li</ul>
359*67e74705SXin Li
360*67e74705SXin Li</div>
361*67e74705SXin Li</div>
362*67e74705SXin Li</body>
363*67e74705SXin Li</html>
364*67e74705SXin Li
365