From 9e1db7e76179c7a6f934ce66c29ad8e0873fade5 Mon Sep 17 00:00:00 2001
From: Chris Lattner
The Clang project also includes an early stage static source code analysis tool for automatically finding bugs in C and Objective-C programs. The tool performs a growing set -of checks to find bugs that occur on a specific path within a program. Examples +of checks to find bugs that occur on a specific path within a program. Examples of bugs the tool finds include logic errors such as null dereferences, violations of various API rules, dead code, and potential memory leaks in -Objective-C programs. Since its public announcement at Apple's WWDC 2008 -conference, the public feedback on the tool has been extremely positive, and -conservative estimates put the number of real bugs it has found in -industrial-quality software on the order of thousands.
+Objective-C programs. Since its inception, public feedback on the tool has been +extremely positive, and conservative estimates put the number of real bugs it +has found in industrial-quality software on the order of thousands.The tool also provides a simple web GUI to inspect potential bugs found by -the tool. While still early in development, the GUI illustrates some of the key +the tool. While still early in development, the GUI illustrates some of the key features of Clang: accurate source location information, which is used by the GUI to highlight specific code expressions that relate to a bug (including those that span multiple lines) and built-in knowledge of macros, which is used to perform inline expansion of macros within the GUI itself.
-The set of checks perform by the static analyzer is gradually expanding, and +
The set of checks performed by the static analyzer is gradually expanding, +and future plans for the tool include full source-level inter-procedural analysis and deeper checks such as buffer overrun detection. There are many opportunities to extend and enhance the static analyzer, and anyone interested in working on @@ -319,6 +319,11 @@ values and the transfer functions that operate on them. It handles the mechanics of worklist processing, liveness tracking, handling PHI nodes, etc. +