]> granicus.if.org Git - clang/commitdiff
[analyzer] +memory.ZeroAlloc
authorAnton Yartsev <anton.yartsev@gmail.com>
Wed, 24 Dec 2014 00:46:56 +0000 (00:46 +0000)
committerAnton Yartsev <anton.yartsev@gmail.com>
Wed, 24 Dec 2014 00:46:56 +0000 (00:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224796 91177308-0d34-0410-b5e6-96231b3b80d8

www/analyzer/potential_checkers.html

index 7ac8c5c9f391edea3627741e471f3f78d9954a91..67ec5ab3d7aae09b9cf796a7c8f20883dc3682bc 100644 (file)
@@ -104,6 +104,31 @@ void test() {
 </pre></div></div></td>
 <td class="aligned"></td></tr>
 
+<tr><td><div class="namedescr expandable"><span class="name">
+memory.ZeroAlloc</span><span class="lang">
+(C, C++)</span><div class="descr">
+Allocation of zero bytes.
+<br>Note: an enhancement to <span class="name">unix.Malloc</span>.
+<br>Note: <span class="name">unix.API</span> perform C-checks for zero 
+allocation. This should be moved to <span class="name">unix.Malloc</span>.
+<p>Source: C++03 3.7.3.1p2; C++11 3.7.4.1p2.</p></div></div></td>
+<td><div class="exampleContainer expandable">
+<div class="example"><pre>
+#include &lt;stdlib.h&gt;
+
+void test() {
+  int *p = malloc(0); // warn
+  free(p);
+}
+</pre></div>
+<div class="example"><pre>
+void test() {
+  int *p = new int[0]; // warn
+  delete[] p;
+}
+</pre></div></div></td>
+<td class="aligned"></td></tr>
+
 </table>
 
 <!-- ======================= constructors/destructors ====================== -->
@@ -461,7 +486,7 @@ unix.Malloc</span>.
 <p>Source: C++03 3.7.3.1p2; C++11 3.7.4.1p2.</p></div></div></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
-#include &lt;memory&gt;
+#include &lt;stdlib.h&gt;
 
 void test() {
   int *p = (int *)malloc(0);