[cfe-dev] SimpleStreamChecker not loading

Anna Zaks ganna at apple.com
Thu Jun 6 10:15:58 PDT 2013


I see it listed right before the alpha.unix.Stream checker. Not sure why you would not see it. Are you working with a clean version of clang or do you have your own changes in it?

Anna.

On Jun 5, 2013, at 11:31 AM, Todd Nowacki <nowacki724 at gmail.com> wrote:

> 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/20130606/d7eb144e/attachment.html>


More information about the cfe-dev mailing list