[cfe-dev] SimpleStreamChecker not loading

Todd Nowacki nowacki724 at gmail.com
Wed Jun 5 11:31:23 PDT 2013


It is not showing up for me.

clang -cc1 -analyzer-checker-help
                                                           [11:28:17]
OVERVIEW: Clang Static Analyzer Checkers List

USAGE: -analyzer-checker <CHECKER or PACKAGE,...>

CHECKERS:
  alpha.core.BoolAssignment       Warn about assigning non-{0,1} values to
Boolean variables
  alpha.core.CastSize             Check when casting a malloc'ed type T,
whether the size is a multiple of the size of T
  alpha.core.CastToStruct         Check for cast from non-struct pointer to
struct pointer
  alpha.core.FixedAddr            Check for assignment of a fixed address
to a pointer
  alpha.core.PointerArithm        Check for pointer arithmetic on locations
other than array elements
  alpha.core.PointerSub           Check for pointer subtractions on two
pointers pointing to different memory chunks
  alpha.core.SizeofPtr            Warn about unintended use of sizeof() on
pointer expressions
  alpha.cplusplus.VirtualCall     Check virtual function calls during
construction or destruction
  alpha.deadcode.IdempotentOperations
                                  Warn about idempotent operations
  alpha.deadcode.UnreachableCode  Check unreachable code
  alpha.osx.cocoa.Dealloc         Warn about Objective-C classes that lack
a correct implementation of -dealloc
  alpha.osx.cocoa.DirectIvarAssignment
                                  Check that the invalidatable instance
variables are invalidated in the methods annotated with
objc_instance_variable_invalidator
  alpha.osx.cocoa.InstanceVariableInvalidation
                                  Check that the invalidatable instance
variables are invalidated in the methods annotated with
objc_instance_variable_invalidator
  alpha.security.ArrayBound       Warn about buffer overflows (older
checker)
  alpha.security.ArrayBoundV2     Warn about buffer overflows (newer
checker)
  alpha.security.MallocOverflow   Check for overflows in the arguments to
malloc()
  alpha.security.ReturnPtrRange   Check for an out-of-bound pointer being
returned to callers
  alpha.security.taint.TaintPropagation
                                  Generate taint information used by other
checkers
  alpha.unix.Chroot               Check improper use of chroot
  alpha.unix.MallocWithAnnotations
                                  Check for memory leaks, double free, and
use-after-free problems. Assumes that all user-defined functions which
might free a pointer are annotated.
  alpha.unix.PthreadLock          Simple lock -> unlock checker
  alpha.unix.Stream               Check stream handling functions
  alpha.unix.cstring.BufferOverlap
                                  Checks for overlap in two buffer arguments
  alpha.unix.cstring.NotNullTerminated
                                  Check for arguments which are not
null-terminating strings
  alpha.unix.cstring.OutOfBounds  Check for out-of-bounds access in string
functions
  core.AttributeNonNull           Check for null pointers passed as
arguments to a function whose arguments are marked with the 'nonnull'
attribute
  core.CallAndMessage             Check for logical errors for function
calls and Objective-C message expressions (e.g., uninitialized arguments,
null function pointers)
  core.DivideZero                 Check for division by zero
  core.DynamicTypePropagation     Generate dynamic type information
  core.NullDereference            Check for dereferences of null pointers
  core.StackAddressEscape         Check that addresses to stack memory do
not escape the function
  core.UndefinedBinaryOperatorResult
                                  Check for undefined results of binary
operators
  core.VLASize                    Check for declarations of VLA of
undefined or zero size
  core.builtin.BuiltinFunctions   Evaluate compiler builtin functions
(e.g., alloca())
  core.builtin.NoReturnFunctions  Evaluate "panic" functions that are known
to not return to the caller
  core.uninitialized.ArraySubscript
                                  Check for uninitialized values used as
array subscripts
  core.uninitialized.Assign       Check for assigning uninitialized values
  core.uninitialized.Branch       Check for uninitialized values used as
branch conditions
  core.uninitialized.CapturedBlockVariable
                                  Check for blocks that capture
uninitialized values
  core.uninitialized.UndefReturn  Check for uninitialized values being
returned to the caller
  deadcode.DeadStores             Check for values stored to variables that
are never read afterwards
  debug.ConfigDumper              Dump config table
  debug.DumpCFG                   Display Control-Flow Graphs
  debug.DumpCallGraph             Display Call Graph
  debug.DumpCalls                 Print calls as they are traversed by the
engine
  debug.DumpDominators            Print the dominance tree for a given CFG
  debug.DumpLiveVars              Print results of live variable analysis
  debug.DumpTraversal             Print branch conditions as they are
traversed by the engine
  debug.ExprInspection            Check the analyzer's understanding of
expressions
  debug.Stats                     Emit warnings with analyzer statistics
  debug.TaintTest                 Mark tainted symbols as such.
  debug.ViewCFG                   View Control-Flow Graphs using GraphViz
  debug.ViewCallGraph             View Call Graph using GraphViz
  llvm.Conventions                Check code for LLVM codebase conventions
  osx.API                         Check for proper uses of various Mac OS X
APIs
  osx.SecKeychainAPI              Check for proper uses of Secure Keychain
APIs
  osx.cocoa.AtSync                Check for nil pointers used as mutexes
for @synchronized
  osx.cocoa.ClassRelease          Check for sending 'retain', 'release', or
'autorelease' directly to a Class
  osx.cocoa.IncompatibleMethodTypes
                                  Warn about Objective-C method signatures
with type incompatibilities
  osx.cocoa.Loops                 Improved modeling of loops using Cocoa
collection types
  osx.cocoa.NSAutoreleasePool     Warn for suboptimal uses of
NSAutoreleasePool in Objective-C GC mode
  osx.cocoa.NSError               Check usage of NSError** parameters
  osx.cocoa.NilArg                Check for prohibited nil arguments to
ObjC method calls
  osx.cocoa.NonNilReturnValue     Model the APIs that are guaranteed to
return a non-nil value
  osx.cocoa.RetainCount           Check for leaks and improper reference
count management
  osx.cocoa.SelfInit              Check that 'self' is properly initialized
inside an initializer method
  osx.cocoa.UnusedIvars           Warn about private ivars that are never
used
  osx.cocoa.VariadicMethodTypes   Check for passing non-Objective-C types
to variadic collection initialization methods that expect only Objective-C
types
  osx.coreFoundation.CFError      Check usage of CFErrorRef* parameters
  osx.coreFoundation.CFNumber     Check for proper uses of CFNumberCreate
  osx.coreFoundation.CFRetainRelease
                                  Check for null arguments to
CFRetain/CFRelease
  osx.coreFoundation.containers.OutOfBounds
                                  Checks for index out-of-bounds when using
'CFArray' API
  osx.coreFoundation.containers.PointerSizedValues
                                  Warns if 'CFArray', 'CFDictionary',
'CFSet' are created with non-pointer-size values
  security.FloatLoopCounter       Warn on using a floating point value as a
loop counter (CERT: FLP30-C, FLP30-CPP)
  security.insecureAPI.UncheckedReturn
                                  Warn on uses of functions whose return
values must be always checked
  security.insecureAPI.getpw      Warn on uses of the 'getpw' function
  security.insecureAPI.gets       Warn on uses of the 'gets' function
  security.insecureAPI.mkstemp    Warn when 'mkstemp' is passed fewer than
6 X's in the format string
  security.insecureAPI.mktemp     Warn on uses of the 'mktemp' function
  security.insecureAPI.rand       Warn on uses of the 'rand', 'random', and
related functions
  security.insecureAPI.strcpy     Warn on uses of the 'strcpy' and 'strcat'
functions
  security.insecureAPI.vfork      Warn on uses of the 'vfork' function
  unix.API                        Check calls to various UNIX/Posix
functions
  unix.Malloc                     Check for memory leaks, double free, and
use-after-free problems.
  unix.MallocSizeof               Check for dubious malloc arguments
involving sizeof
  unix.cstring.BadSizeArg         Check the size argument passed into C
string functions for common erroneous patterns
  unix.cstring.NullArg            Check for null pointers being passed as
arguments to C string functions



I just pulled and rebuilt to be sure, still nothing.

Sincerely,
Todd Nowacki


On Wed, Jun 5, 2013 at 10:15 AM, Anna Zaks <ganna at apple.com> wrote:

> I do see it in the list (the visible name is slightly different):
>   alpha.unix.SimpleStream         Check for misuses of stream APIs
>
> Cheers,
> Anna.
> On Jun 4, 2013, at 4:28 PM, Todd Nowacki <nowacki724 at gmail.com> wrote:
>
> I'm getting started with trying to develop a checker, and I'm trying to
> get aquianted with the system.
>
> I am not seeing the the SimpleStreamChecker when I run *clang -cc1
> -analyzer-checker-help*.  I looked and it appears as if all the steps for
> 'checker registration' have been completed for this checker, yet it is not
> showing up. While I don't need to use this checker, I was wondering what
> was going on here and what needs to be done to fix it.
>
> Sincerely,
> Todd Nowacki
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130605/fe3f4a6f/attachment.html>


More information about the cfe-dev mailing list