From 0e5df1a587187490e06d6421199feabbbecc6032 Mon Sep 17 00:00:00 2001 From: Anna Zaks Date: Sat, 5 Nov 2011 05:20:54 +0000 Subject: [PATCH] [analyzer] Add the list of available checkers to the website. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143788 91177308-0d34-0410-b5e6-96231b3b80d8 --- www/analyzer/available_checks.html | 121 ++++++++++++++++++++++++++++- 1 file changed, 117 insertions(+), 4 deletions(-) diff --git a/www/analyzer/available_checks.html b/www/analyzer/available_checks.html index 7af0865065..ae6195979e 100644 --- a/www/analyzer/available_checks.html +++ b/www/analyzer/available_checks.html @@ -16,10 +16,123 @@

Available Checks

-

This page is slated to contain a list of the current checks the analyzer -performs along with some self-contained code examples. In the meantime, please -check out any of the following writeups about the analyzer that contain examples -of some of the bugs that it finds:

+

The list of the checks the analyzer performs by default

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
core.AdjustedReturnValueCheck to see if the return value of a function call is different than the caller expects (e.g., from calls through function pointers).
core.AttributeNonNullCheck for null pointers passed as arguments to a function whose arguments are marked with the 'nonnull' attribute.
core.CallAndMessageCheck for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers).
core.DivideZeroCheck for division by zero.
core.NullDereferenceCheck for dereferences of null pointers.
core.StackAddressEscapeCheck that addresses to stack memory do not escape the function.
core.UndefinedBinaryOperatorResultCheck for undefined results of binary operators.
core.VLASizeCheck for declarations of VLA of undefined or zero size.
core.builtin.BuiltinFunctionsEvaluate compiler builtin functions (e.g., alloca()).
core.builtin.NoReturnFunctionsEvaluate "panic" functions that are known to not return to the caller.
core.uninitialized.ArraySubscriptCheck for uninitialized values used as array subscripts.
core.uninitialized.AssignCheck for assigning uninitialized values.
core.uninitialized.BranchCheck for uninitialized values used as branch conditions.
core.uninitialized.CapturedBlockVariableCheck for blocks that capture uninitialized values.
core.uninitialized.UndefReturnCheck for uninitialized values being returned to the caller.
deadcode.DeadStoresCheck for values stored to variables that are never read afterwards.
deadcode.IdempotentOperationsWarn about idempotent operations.
osx.APICheck for proper uses of various Mac OS X APIs.
osx.AtomicCASEvaluate calls to OSAtomic functions.
osx.SecKeychainAPICheck for proper uses of Secure Keychain APIs.
osx.cocoa.AtSyncCheck for null pointers used as mutexes for @synchronized.
osx.cocoa.ClassReleaseCheck for sending 'retain', 'release', or 'autorelease' directly to a Class.
osx.cocoa.IncompatibleMethodTypesWarn about Objective-C method signatures with type incompatibilities.
osx.cocoa.NSAutoreleasePoolWarn for suboptimal uses of NSAutoreleasePool in Objective-C GC mode.
osx.cocoa.NSErrorCheck usage of NSError** parameters.
osx.cocoa.NilArgCheck for prohibited nil arguments to ObjC method calls.
osx.cocoa.RetainCountCheck for leaks and improper reference count management.
osx.cocoa.UnusedIvarsWarn about private ivars that are never used.
osx.cocoa.VariadicMethodTypesCheck for passing non-Objective-C types to variadic methods that expect only Objective-C types.
osx.coreFoundation.CFErrorCheck usage of CFErrorRef* parameters.
osx.coreFoundation.CFNumberCheck for proper uses of CFNumberCreate.
osx.coreFoundation.CFRetainReleaseCheck for null arguments to CFRetain/CFRelease.
unix.APICheck calls to various UNIX/Posix functions.
core.DivideZeroCheck for division by zero.
core.DivideZeroCheck for division by zero.
+ +

In addition to these the analyzer contains numerous experimental (beta) checkers.

+ +

Writeups with examples of some of the bugs that the analyzer finds