[llvm-branch-commits] [cfe-branch] r197377 - Rewrite the static analyzer changes description for the 3.4 release.

Sylvestre Ledru sylvestre at debian.org
Mon Dec 16 02:43:55 PST 2013


Author: sylvestre
Date: Mon Dec 16 04:43:55 2013
New Revision: 197377

URL: http://llvm.org/viewvc/llvm-project?rev=197377&view=rev
Log:
Rewrite the static analyzer changes description for the 3.4 release.

After chatting with Anna Zaks, she believes that my code samples were
more bugs in the previous releases of the static analyzer.


Modified:
    cfe/branches/release_34/docs/ReleaseNotes.rst

Modified: cfe/branches/release_34/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_34/docs/ReleaseNotes.rst?rev=197377&r1=197376&r2=197377&view=diff
==============================================================================
--- cfe/branches/release_34/docs/ReleaseNotes.rst (original)
+++ cfe/branches/release_34/docs/ReleaseNotes.rst Mon Dec 16 04:43:55 2013
@@ -188,48 +188,8 @@ libclang
 Static Analyzer
 ---------------
 
-The static analyzer (which contains additional code checking beyond compiler
-warnings) has improved significantly in both in the core analysis engine and
-also in the kinds of issues it can find.
-
-For example, the static analyzer now manages the following cases:
-
-- Missing return after function pointer null check.
-
-.. code-block:: c
-
-  void foo(void (*f)(void)) {
-    if (f)
-        return;
-    f();
-  }
-
-- Detect when ``delete`` is used on an uninitialized variable.
-
-.. code-block:: c++
-
-  void foo() {
-    int *x;
-    delete[] x;
-  }
-
-- Handle destructors for the argument to C++ ``delete``.
-
-.. code-block:: c++
-
-  class DerefClass{
-  public:
-    int *x;
-    DerefClass() {}
-    ~DerefClass() {*x = 1;}
-  };
-
-  void testDoubleDeleteClassInstance() {
-    DerefClass *foo = new DerefClass();
-    delete foo;
-    delete foo;
-  }
-
+The static analyzer has been greatly improved. This impacts the overall analyzer quality and reduces a number of false positives.
+In particular, this release provides enhanced C++ support, reasoning about initializer lists, zeroing constructors, noreturn destructors and modeling of destructor calls on calls to delete.
 
 Clang Format
 ------------





More information about the llvm-branch-commits mailing list