blob: bc052bbec0afef183997633cb2334c850f42b7f0 [file] [log] [blame]
Ted Kremenekef35cbc2011-01-27 19:41:08 +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>Release notes for checker-XXX builds</title>
Benjamin Kramer665a8dc2012-01-15 15:26:07 +00006 <link type="text/css" rel="stylesheet" href="menu.css">
7 <link type="text/css" rel="stylesheet" href="content.css">
Ted Kremenekef35cbc2011-01-27 19:41:08 +00008 <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>Release notes for <tt>checker-XXX</tt> builds</h1>
17
Ted Kremenek989741b2013-05-24 00:50:01 +000018<h4 id="checker_275">checker-275</h4>
19<p><b>built:</b> May 23, 2013</br>
Ted Kremenek457e05a2013-09-09 17:19:27 +000020 <b>download:</b> <a href="downloads/checker-275.tar.bz2">checker-275.tar.bz2</a></p>
Ted Kremenek989741b2013-05-24 00:50:01 +000021 <p><b>highlights:</b></p>
22 <ul>
23 <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>
24 <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>
25 <li>This build is built with LLVM's Link-Time Optimization (LTO), which should make it slightly faster.</li>
26 <li>LTO also reduces the download size (about 19% smaller than checker-274).</li>
27 <li>Many sundry fixes.</li>
28 </ul>
29
Ted Kremenek70054262013-04-23 23:55:03 +000030<h4 id="checker_274">checker-274</h4>
31<p><b>built:</b> April 23, 2013</br>
32 <b>download:</b> <a href="https://attache.apple.com/AttacheWeb/dl?id=ATCdb3165f4406a4589b5878a22494c3b79">checker-274.tar.bz2</a></p>
33 <p><b>highlights:</b></p>
34 <ul>
35 <li>Improved use-after-free and mismatched deallocator checking.</li>
36 <li>Diagnostic polish.</li>
37 <li>Fixes crashes found in checker-273.</li>
38 </ul>
39
Ted Kremenek1f4b2df2013-04-08 21:02:16 +000040<h4 id="checker_273">checker-273</h4>
41<p><b>built:</b> April 8, 2013</br>
42 <b>download:</b> <a href="https://attache.apple.com/AttacheWeb/dl?id=ATCdefcc852a99546cfbaba2a960e07478e">checker-273.tar.bz2</a></p>
43 <p><b>highlights:</b></p>
44 <ul>
45 <li>Additional checks for misuse of Foundation collection APIs.
46 <li>New C++ checker for attempting to create a reference to null.</li>
47 <li>New use-after-free checker for C++ 'delete'.</li>
48 <li>New checker for simple cases of mismatched allocators and deallocators, e.g. "delete malloc(4);"</li>
49 <li>Support for basic interprocedural analysis of C++ destructors.</li>
50 <li>Additional heuristics for suppressing null pointer false positives.</li>
51 <li>Misc. bug fixes and performance enhancements.</li>
52 </ul>
53
Jordan Rose067e9682013-03-01 23:26:05 +000054<h4 id="checker_272">checker-272</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +000055<p><b>built:</b> March 1, 2013</p>
Jordan Rose067e9682013-03-01 23:26:05 +000056 <p><b>highlights:</b></p>
57 <ul>
58 <li>Better modeling of C++ constructors:
59 <ul>
60 <li>Interprocedural analysis support for constructors of types with trivial destructors</li>
61 <li>Efficient model of trivial copy and move constructors</li>
62 </ul>
63 </li>
64 <li>Better diagnostics for loops that execute 0 times</li>
65 <li>Fixes a linking issue that prevented the checker from running on OS X v10.6 and earlier</li>
66 <li>Fixes for misc. crashes and false positives</li>
67 </ul>
68
Ted Kremenek8580c7e2013-02-08 22:18:26 +000069<h4 id="checker_271">checker-271</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +000070<p><b>built:</b> February 8, 2013</p>
Ted Kremenek8580c7e2013-02-08 22:18:26 +000071 <p><b>highlights:</b></p>
72 <ul>
73 <li>Faster analysis for <tt>scan-build xcodebuild</tt> when using Xcode 4.6 and higher:
74 <ul>
75 <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>
76 <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>
77 </ul></li>
78 <li>Better diagnostics for implicitly-defined member functions in C++.</li>
79 <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>.
80 <li>Fixes for misc. parser crashes.</li>
Ted Kremeneke22cef52013-02-08 22:19:43 +000081 <li>Newer than the static analyzer version in Xcode 4.6</li>
Ted Kremenek8580c7e2013-02-08 22:18:26 +000082 </ul>
83
Ted Kremeneke6956772013-01-04 23:52:16 +000084<h4 id="checker_270">checker-270</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +000085<p><b>built:</b> January 4, 2013</p>
Ted Kremeneke6956772013-01-04 23:52:16 +000086 <p><b>highlights:</b></p>
87 <ul>
88 <li>Major performance enhancements to speed up interprocedural analysis.</li>
89 <li>Misc. bug fixes.</li>
90 </ul>
91
Ted Kremeneka74b9cd2012-09-25 23:58:39 +000092<h4 id="checker_269">checker-269</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +000093<p><b>built:</b> September 25, 2012</p>
Ted Kremeneka74b9cd2012-09-25 23:58:39 +000094 <p><b>highlights:</b></p>
95 <ul>
96 <li>Significantly improves interprocedural analysis for Objective-C.</li>
97 <li>Numerous bug fixes and heuristics to reduce false positives reported
98 over checker-268.</li>
99 </ul>
100
Ted Kremenekf1c70602012-09-12 05:11:29 +0000101<h4 id="checker_268">checker-268</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +0000102<p><b>built:</b> September 11, 2012</p>
Ted Kremenekf1c70602012-09-12 05:11:29 +0000103 <p><b>highlights:</b></p>
104
105<ul>
106 <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>
107 <li>Contains a static analyzer newer than Xcode 4.4.</li>
108</ul>
109
110<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
111these, and any other problems you encounter. When you encounter an issue, please <a href="/filing_bugs.html">file a bug report</a>.</p>
112
Ted Kremeneke42855e2012-06-01 21:51:15 +0000113<h4 id="checker_267">checker-267</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +0000114<p><b>built:</b> June 1, 2012</p>
Ted Kremeneke42855e2012-06-01 21:51:15 +0000115 <p><b>highlights:</b></p>
116
117<p>Adds basic interprocedural analysis support for blocks.</p>
118
Ted Kremenek6f9c05d2012-05-23 19:57:38 +0000119<h4 id="checker_266">checker-266</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +0000120<p><b>built:</b> May 23, 2012</p>
Ted Kremenek6f9c05d2012-05-23 19:57:38 +0000121 <p><b>highlights:</b></p>
Ted Kremenekc472b2d2012-05-09 00:08:47 +0000122
Ted Kremenek6f9c05d2012-05-23 19:57:38 +0000123<p>Contains numerous stability fixes over checker-266, especially when analyzing C++11 code.</p>
124
125<h4 id="checker_265">checker-265</h4>
Ted Kremenek4fbab272013-05-28 23:30:24 +0000126<p><b>built:</b> May 8, 2012</p>
Ted Kremenekc472b2d2012-05-09 00:08:47 +0000127 <p><b>highlights:</b></p>
128
Ted Kremenek7f0873c2012-05-09 06:29:38 +0000129<p>This release contains a fix for a major crasher introduced in checker-264, and various refinements to
Anna Zaks30a09082012-05-09 17:57:16 +0000130improve the precision and reduce the false positive rate of the analyzer. It also enables a new unix.MallocSizeof check, which reports
131inconsistencies between the casted type of the return value of a 'malloc/calloc/realloc' call and the operand
132of sizeof expressions contained within its argument(s).</p>
Ted Kremenekc472b2d2012-05-09 00:08:47 +0000133
Ted Kremenekcfca6b72012-04-26 07:29:14 +0000134<h4 id="checker_264">checker-264</h4>
135
Ted Kremenek4fbab272013-05-28 23:30:24 +0000136<p><b>built:</b> April 26, 2012</p>
Ted Kremenekcfca6b72012-04-26 07:29:14 +0000137 <p><b>highlights:</b></p>
138
139<p>This release contains misc. bug fixes and performance enhancements over checker-263, including
140 a reduction of some kinds of false positives related to the malloc() checker.</p>
141
Ted Kremenek2098c1c2012-03-23 07:06:16 +0000142<h4 id="checker_263">checker-263</h4>
143
Ted Kremenek4fbab272013-05-28 23:30:24 +0000144<p><b>built:</b> March 22, 2012</p>
Ted Kremenek2098c1c2012-03-23 07:06:16 +0000145<p><b>highlights:</b></p>
146
147<ul>
148<li>Fixes several serious bugs with inter-procedural analysis, including a case where retain/releases would be &quot;double-counted&quot;.</li>
149</ul>
150
Ted Kremenek0950ca02012-03-15 23:02:21 +0000151<h4 id="checker_262">checker-262</h4>
152
Ted Kremenek4fbab272013-05-28 23:30:24 +0000153<p><b>built: </b>March 15, 2012</p>
Ted Kremenek0950ca02012-03-15 23:02:21 +0000154<p><b>highlights:</b></p>
155
156<ul>
157 <li>Enables experimental interprocedural analysis (within a file), which greatly amplifies the analyzer's ability to find issues.</li>
158 <li>Many bug fixes to the malloc/free checker.</li>
159 <li>Support for new Objective-C NSArray/NSDictionary/NSNumber literals syntax, and Objective-C container subscripting.</li>
160</ul>
161
162<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>.
163
Ted Kremenek64089942012-02-23 00:47:09 +0000164<h4 id="checker_261">checker-261</h4>
165
166<p><b>built: </b>February 22, 2012<br>
Ted Kremenek64089942012-02-23 00:47:09 +0000167<p><b>highlights:</b></p>
168
169<ul>
170 <li>Contains a new experimental malloc/free checker.</li>
171 <li>Better support for projects using ARC.</li>
Anna Zaks55882442012-02-23 21:38:14 +0000172 <li>Warns about null pointers passed as arguments to C string functions.</li>
173 <li>Warns about common anti-patterns in 'strncat' size argument, which can lead to buffer overflows.</li>
174 <li>set-xcode-analyzer now supports self-contained Xcode.app (Xcode 4.3 and later).</li>
Ted Kremeneka5964422012-02-23 00:48:17 +0000175 <li>Contains a newer version of the analyzer than Xcode 4.3.</li>
Anna Zaks55882442012-02-23 21:38:14 +0000176 <li>Misc. bug fixes and performance work.</li>
Ted Kremenek64089942012-02-23 00:47:09 +0000177</ul>
178
Ted Kremenek8ec2bc82012-01-26 03:02:34 +0000179<h4 id="checker_260">checker-260</h4>
180
181<p><b>built: </b>January 25, 2012<br>
Ted Kremenek8ec2bc82012-01-26 03:02:34 +0000182<p><b>highlights:</b></p>
183
184<p>This is essentially the same as checker-259, but enables the following <i>experimental</i> checkers (please provide feedback):</p>
185
186<ul>
187 <li>Warns about unsafe uses of CFArrayCreate, CFSetCreate, and CFDictionaryCreate</li>
188 <li>Warns about unsafe uses of getpw, gets, which are sources of buffer overflows</li>
189 <li>Warns about unsafe uses of mktemp and mktemps, which can lead to insecure temporary files</li>
190 <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>
191 <li>Warns about not checking the return values of setuid, setgid, seteuid, setegid, setreuid, setregid (another security issue)</li>
192</ul>
193
Ted Kremenekd2e70902012-01-25 22:18:04 +0000194<h4 id="checker_259">checker-259</h4>
195
196<p><b>built: </b>January 25, 2012<br>
Ted Kremenekd2e70902012-01-25 22:18:04 +0000197<p><b>highlights:</b></p>
198
199<ul>
200 <li>Contains a newer version of the analyzer than the one shipped in Xcode 4.2.</li>
201 <li>Significant performance optimizations to reduce memory usage of the analyzer.</li>
202 <li>Tweaks to scan-build to have it work more easily with Xcode projects using Clang.</li>
203 <li>Numerous bug fixes to better support code using ARC.</li>
204</ul>
205
Ted Kremenekbb19cd82011-10-14 04:15:19 +0000206<h4 id="checker_258">checker-258</h4>
207
Ted Kremenekd2e70902012-01-25 22:18:04 +0000208<p><b>built: </b>October 13, 2011<br>
Ted Kremenekbb19cd82011-10-14 04:15:19 +0000209<p><b>highlights:</b></p>
210
211<ul>
212 <li>Contains a newer version of the analyzer than the one shipped in Xcode 4.2.</li>
213 <li>Adds a new security checker for looking at correct uses of the Mac OS KeyChain API.</li>
214 <li>Supports ARC (please file bugs where you see issues)</li>
215 <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>
216</ul>
217
Ted Kremenekf30c4cc2011-05-25 16:30:14 +0000218<h4 id="checker_257">checker-257</h4>
219
Ted Kremenekd2e70902012-01-25 22:18:04 +0000220<p><b>built: </b>May 25, 2011<br>
Ted Kremenekf30c4cc2011-05-25 16:30:14 +0000221<p><b>highlights:</b></p>
222
223<ul>
224 <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>
225 <li>Fixed a serious regression where the analyzer would not analyze Objective-C methods in class extensions.</li>
226 <li>Misc. bug fixes to improve analyzer precision.
227 </li>
228</ul>
229
Ted Kremenek2d5f2da2011-04-13 21:48:34 +0000230<h4 id="checker_256">checker-256</h4>
231
Ted Kremenekd2e70902012-01-25 22:18:04 +0000232<p><b>built: </b>April 13, 2011<br>
Ted Kremenek2d5f2da2011-04-13 21:48:34 +0000233<p><b>highlights:</b></p>
234
235<ul>
236 <li>Lots of bug fixes and improvements to analyzer precision (fewer false positives, possibly more bugs found).
237 <li>Introductory analysis support for C++ and Objective-C++.
238</ul>
239
240<p>This build contains basic support for C++ and Objective-C++ that is ready to be tried out
241 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
242 issues and have a reasonable false positive rate.</p>
243
244<p><b>Please</b> <a href="/filing_bugs.html">file bugs</a> when you see issues of any kind so we can assess
245 where development on C++ analysis support needs to be focused.</p>
246
247<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
248 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
249 your version of the analyzer</a>. You will then need to modify one configuration file in Xcode to enable C++ analysis support. This can
250 be done with the following steps:</p>
251
252<ol>
253 <li>Find the clang .xcspec file:
254<pre>$ cd /Developer/Library
255$ find . | grep xcspec | grep Clang
256./Xcode/<b>&lt;SNIP&gt;</b>/Clang LLVM 1.0.xcplugin/Contents/Resources/Clang LLVM 1.0.xcspec
257</pre></li>
258 <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;:
259<pre>
260 SourceFileOption = "--analyze";
261 FileTypes = (
262 "sourcecode.c.c",
263 "sourcecode.c.objc",
264 );
265 ...
266</pre>
267 Change the &quot;FileTypes&quot; entry to:
268<pre>
269 FileTypes = (
270 "sourcecode.c.c",
271 "sourcecode.c.objc",
272 "sourcecode.cpp.cpp",
273 "sourcecode.cpp.objcpp",
274 );
275</pre></li>
276<li>Restart Xcode.</li>
277</ol>
278
Ted Kremeneke6732792011-02-12 03:20:34 +0000279<h4 id="checker_255">checker-255</h4>
280
Ted Kremenekd2e70902012-01-25 22:18:04 +0000281<p><b>built: </b> February 11, 2011<br>
Ted Kremeneke6732792011-02-12 03:20:34 +0000282<p><b>highlights:</b></p>
283
284<ul>
285<li>Mac OS X builds are now Intel <tt>i386</tt> and <tt>x86_64</tt> only (no <tt>ppc</tt> support)</li>
286<li>Turns on new <tt>-init</tt> method checker by default</li>
287<li>Reduces memory usage of analyzer by 10%</li>
288<li>Misc. fixes to reduce false positives on dead stores and idempotent operations.</li>
289</ul>
290
Ted Kremenekef35cbc2011-01-27 19:41:08 +0000291<h4 id="checker_254">checker-254</h4>
292
Ted Kremenekd2e70902012-01-25 22:18:04 +0000293<p><b>built: </b> January 27, 2011<br>
Ted Kremenekef35cbc2011-01-27 19:41:08 +0000294<p><b>highlights:</b></p>
295
296<ul>
297<li>Introduces new <tt>-init</tt> method checker to check if a super class's init method is properly called.</li>
298<li>Objective-C retain/release checker now reasons about calls to property accessor methods (setter/getter).</li>
299<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>
300<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>
301</ul>
302
303</div>
304</div>
305</body>
306</html>
307