blob: 491e53d2db0420643f0f0b4b2fa64909d88e2aba [file] [log] [blame]
// This file is automatically generated. Do not edit this file by hand.
#ifdef GET_PACKAGES
PACKAGE("alpha.unix.cstring")
PACKAGE("unix")
PACKAGE("alpha.clone")
PACKAGE("alpha")
PACKAGE("debug")
PACKAGE("osx.coreFoundation")
PACKAGE("apiModeling")
PACKAGE("core")
PACKAGE("optin")
PACKAGE("unix.cstring")
PACKAGE("optin.portability")
PACKAGE("nullability")
PACKAGE("core.uninitialized")
PACKAGE("apiModeling.llvm")
PACKAGE("apiModeling.google")
PACKAGE("alpha.security.taint")
PACKAGE("alpha.deadcode")
PACKAGE("alpha.cplusplus")
PACKAGE("alpha.nondeterminism")
PACKAGE("alpha.osx.cocoa")
PACKAGE("optin.cplusplus")
PACKAGE("optin.osx.cocoa")
PACKAGE("deadcode")
PACKAGE("optin.performance")
PACKAGE("cplusplus")
PACKAGE("osx.coreFoundation.containers")
PACKAGE("osx.cocoa")
PACKAGE("core.builtin")
PACKAGE("alpha.llvm")
PACKAGE("optin.osx.cocoa.localizability")
PACKAGE("alpha.osx.cocoa.localizability")
PACKAGE("optin.osx")
PACKAGE("valist")
PACKAGE("alpha.osx")
PACKAGE("alpha.security")
PACKAGE("security")
PACKAGE("alpha.unix")
PACKAGE("osx")
PACKAGE("llvm")
PACKAGE("alpha.core")
PACKAGE("security.insecureAPI")
PACKAGE("optin.mpi")
#endif // GET_PACKAGES
#ifdef GET_PACKAGE_OPTIONS
PACKAGE_OPTION("bool", "nullability", "NoDiagnoseCallsToSystemHeaders", "Suppresses warnings for violating nullability annotations of system header functions. This is useful if you are concerned with your custom nullability annotations more than with following nullability specifications of system header functions.", "false", "released", false)
#endif // GET_PACKAGE_OPTIONS
#ifdef GET_CHECKERS
CHECKER("debug.AnalysisOrder", AnalysisOrderChecker, "Print callbacks that are called during analysis in order", "", true)
CHECKER("debug.Stats", AnalyzerStatsChecker, "Emit warnings with analyzer statistics", "", true)
CHECKER("alpha.security.ArrayBound", ArrayBoundChecker, "Warn about buffer overflows (older checker)", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.security.ArrayBound", false)
CHECKER("alpha.security.ArrayBoundV2", ArrayBoundCheckerV2, "Warn about buffer overflows (newer checker)", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.security.ArrayBoundV2", false)
CHECKER("osx.cocoa.AutoreleaseWrite", AutoreleaseWriteChecker, "Warn about potentially crashing writes to autoreleasing objects from different autoreleasing pools in Objective-C", "", false)
CHECKER("alpha.unix.BlockInCriticalSection", BlockInCriticalSectionChecker, "Check for calls to blocking functions inside a critical section", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.BlockInCriticalSection", false)
CHECKER("alpha.core.BoolAssignment", BoolAssignmentChecker, "Warn about assigning non-{0,1} values to Boolean variables", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.BoolAssignment", false)
CHECKER("core.builtin.BuiltinFunctions", BuiltinFunctionChecker, "Evaluate compiler builtin functions (e.g., alloca())", "", true)
CHECKER("osx.coreFoundation.CFError", CFErrorChecker, "Check usage of CFErrorRef* parameters", "https://clang-analyzer.llvm.org/available_checks.html#osx.coreFoundation.CFError", false)
CHECKER("debug.DumpCFG", CFGDumper, "Display Control-Flow Graphs", "", true)
CHECKER("debug.ViewCFG", CFGViewer, "View Control-Flow Graphs using GraphViz", "", true)
CHECKER("osx.coreFoundation.CFNumber", CFNumberChecker, "Check for proper uses of CFNumber APIs", "https://clang-analyzer.llvm.org/available_checks.html#osx.coreFoundation.CFNumber", false)
CHECKER("osx.coreFoundation.CFRetainRelease", CFRetainReleaseChecker, "Check for null arguments to CFRetain/CFRelease/CFMakeCollectable", "https://clang-analyzer.llvm.org/available_checks.html#osx.coreFoundation.CFRetainRelease", false)
CHECKER("alpha.unix.cstring.BufferOverlap", CStringBufferOverlap, "Checks for overlap in two buffer arguments", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.cstring.BufferOverlap", false)
CHECKER("unix.cstring.CStringModeling", CStringModeling, "The base of several CString related checkers. On it's own it emits no reports, but adds valuable information to the analysis when enabled.", "", true)
CHECKER("alpha.unix.cstring.NotNullTerminated", CStringNotNullTerm, "Check for arguments which are not null-terminating strings", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.cstring.NotNullTerminated", false)
CHECKER("unix.cstring.NullArg", CStringNullArg, "Check for null pointers being passed as arguments to C string functions", "https://clang-analyzer.llvm.org/available_checks.html#unix.cstring.NullArg", false)
CHECKER("alpha.unix.cstring.OutOfBounds", CStringOutOfBounds, "Check for out-of-bounds access in string functions", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.cstring.OutOfBounds", false)
CHECKER("unix.cstring.BadSizeArg", CStringSyntaxChecker, "Check the size argument passed into C string functions for common erroneous patterns", "https://clang-analyzer.llvm.org/available_checks.html#unix.cstring.BadSizeArg", false)
CHECKER("cplusplus.SelfAssignment", CXXSelfAssignmentChecker, "Checks C++ copy and move assignment operators for self assignment", "", true)
CHECKER("core.CallAndMessage", CallAndMessageChecker, "Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers)", "https://clang-analyzer.llvm.org/available_checks.html#core.CallAndMessage", false)
CHECKER("alpha.core.CallAndMessageUnInitRefArg", CallAndMessageUnInitRefArg, "Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers, and pointer to undefined variables)", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.CallAndMessageUnInitRefArg", false)
CHECKER("debug.DumpCalls", CallDumper, "Print calls as they are traversed by the engine", "", true)
CHECKER("debug.DumpCallGraph", CallGraphDumper, "Display Call Graph", "", true)
CHECKER("debug.ViewCallGraph", CallGraphViewer, "View Call Graph using GraphViz", "", true)
CHECKER("alpha.core.CastSize", CastSizeChecker, "Check when casting a malloc'ed type T, whether the size is a multiple of the size of T", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.CastSize", false)
CHECKER("alpha.core.CastToStruct", CastToStructChecker, "Check for cast from non-struct pointer to struct pointer", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.CastToStruct", false)
CHECKER("apiModeling.llvm.CastValue", CastValueChecker, "Model implementation of custom RTTIs", "", true)
CHECKER("alpha.unix.Chroot", ChrootChecker, "Check improper use of chroot", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.Chroot", false)
CHECKER("osx.cocoa.ClassRelease", ClassReleaseChecker, "Check for sending 'retain', 'release', or 'autorelease' directly to a Class", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.ClassRelease", false)
CHECKER("alpha.clone.CloneChecker", CloneChecker, "Reports similar pieces of code.", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.clone.CloneChecker", false)
CHECKER("debug.ConfigDumper", ConfigDumper, "Dump config table", "", true)
CHECKER("debug.DumpControlDependencies", ControlDependencyTreeDumper, "Print the post control dependency tree for a given CFG", "", true)
CHECKER("alpha.core.Conversion", ConversionChecker, "Loss of sign/precision in implicit conversions", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.Conversion", false)
CHECKER("valist.CopyToSelf", CopyToSelfChecker, "Check for va_lists which are copied onto itself.", "", false)
CHECKER("deadcode.DeadStores", DeadStoresChecker, "Check for values stored to variables that are never read afterwards", "https://clang-analyzer.llvm.org/available_checks.html#deadcode.DeadStores", false)
CHECKER("alpha.cplusplus.DeleteWithNonVirtualDtor", DeleteWithNonVirtualDtorChecker, "Reports destructions of polymorphic objects with a non-virtual destructor in their base class", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.cplusplus.DeleteWithNonVirtualDtor", false)
CHECKER("security.insecureAPI.DeprecatedOrUnsafeBufferHandling", DeprecatedOrUnsafeBufferHandling, "Warn on uses of unsecure or deprecated buffer manipulating functions", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.DeprecatedOrUnsafeBufferHandling", false)
CHECKER("core.NullDereference", DereferenceChecker, "Check for dereferences of null pointers", "https://clang-analyzer.llvm.org/available_checks.html#core.NullDereference", false)
CHECKER("alpha.osx.cocoa.DirectIvarAssignment", DirectIvarAssignment, "Check for direct assignments to instance variables", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.osx.cocoa.DirectIvarAssignment", false)
CHECKER("alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions", DirectIvarAssignmentForAnnotatedFunctions, "Check for direct assignments to instance variables in the methods annotated with objc_no_direct_instance_variable_assignment", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions", false)
CHECKER("core.DivideZero", DivZeroChecker, "Check for division by zero", "https://clang-analyzer.llvm.org/available_checks.html#core.DivideZero", false)
CHECKER("debug.DumpDominators", DominatorsTreeDumper, "Print the dominance tree for a given CFG", "", true)
CHECKER("unix.DynamicMemoryModeling", DynamicMemoryModeling, "The base of several malloc() related checkers. On it's own it emits no reports, but adds valuable information to the analysis when enabled.", "", true)
CHECKER("alpha.core.DynamicTypeChecker", DynamicTypeChecker, "Check for cases where the dynamic and the static type of an object are unrelated.", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.DynamicTypeChecker", false)
CHECKER("core.DynamicTypePropagation", DynamicTypePropagation, "Generate dynamic type information", "", false)
CHECKER("optin.osx.cocoa.localizability.EmptyLocalizationContextChecker", EmptyLocalizationContextChecker, "Check that NSLocalizedString macros include a comment for context", "https://clang-analyzer.llvm.org/available_checks.html#optin.osx.cocoa.localizability.EmptyLocalizationContextChecker", false)
CHECKER("alpha.cplusplus.EnumCastOutOfRange", EnumCastOutOfRangeChecker, "Check integer to enumeration casts for out of range values", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.cplusplus.EnumCastOutOfRange", false)
CHECKER("debug.ViewExplodedGraph", ExplodedGraphViewer, "View Exploded Graphs using GraphViz", "", true)
CHECKER("debug.ExprInspection", ExprInspectionChecker, "Check the analyzer's understanding of expressions", "", true)
CHECKER("alpha.core.FixedAddr", FixedAddressChecker, "Check for assignment of a fixed address to a pointer", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.FixedAddr", false)
CHECKER("security.FloatLoopCounter", FloatLoopCounter, "Warn on using a floating point value as a loop counter (CERT: FLP30-C, FLP30-CPP)", "https://clang-analyzer.llvm.org/available_checks.html#security.FloatLoopCounter", false)
CHECKER("optin.performance.GCDAntipattern", GCDAntipattern, "Check for performance anti-patterns when using Grand Central Dispatch", "", false)
CHECKER("apiModeling.google.GTest", GTestChecker, "Model gtest assertion APIs", "", true)
CHECKER("alpha.security.taint.TaintPropagation", GenericTaintChecker, "Generate taint information used by other checkers", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.security.taint.TaintPropagation", false)
CHECKER("alpha.core.IdenticalExpr", IdenticalExprChecker, "Warn about unintended use of identical expressions in operators", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.IdenticalExpr", false)
CHECKER("cplusplus.InnerPointer", InnerPointerChecker, "Check for inner pointers of C++ containers used after re/deallocation", "", false)
CHECKER("alpha.osx.cocoa.InstanceVariableInvalidation", InstanceVariableInvalidation, "Check that the invalidatable instance variables are invalidated in the methods annotated with objc_instance_variable_invalidator", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.osx.cocoa.InstanceVariableInvalidation", false)
CHECKER("alpha.cplusplus.InvalidatedIterator", InvalidatedIteratorChecker, "Check for use of invalidated iterators", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.cplusplus.InvalidatedIterator", false)
CHECKER("alpha.cplusplus.IteratorModeling", IteratorModeling, "Models iterators of C++ containers", "", true)
CHECKER("alpha.cplusplus.IteratorRange", IteratorRangeChecker, "Check for iterators used outside their valid ranges", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.cplusplus.IteratorRange", false)
CHECKER("alpha.osx.cocoa.IvarInvalidationModeling", IvarInvalidationModeling, "Gathers information for annotation driven invalidation checking for classes that contains a method annotated with 'objc_instance_variable_invalidator'", "", true)
CHECKER("alpha.llvm.Conventions", LLVMConventionsChecker, "Check code for LLVM codebase conventions", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.llvm.Conventions", false)
CHECKER("debug.DumpLiveStmts", LiveStatementsDumper, "Print results of live statement analysis", "", true)
CHECKER("debug.DumpLiveVars", LiveVariablesDumper, "Print results of live variable analysis", "", true)
CHECKER("osx.MIG", MIGChecker, "Find violations of the Mach Interface Generator calling convention", "", false)
CHECKER("optin.mpi.MPI-Checker", MPIChecker, "Checks MPI code", "https://clang-analyzer.llvm.org/available_checks.html#optin.mpi.MPI-Checker", false)
CHECKER("osx.SecKeychainAPI", MacOSKeychainAPIChecker, "Check for proper uses of Secure Keychain APIs", "https://clang-analyzer.llvm.org/available_checks.html#osx.SecKeychainAPI", false)
CHECKER("osx.API", MacOSXAPIChecker, "Check for proper uses of various Apple APIs", "https://clang-analyzer.llvm.org/available_checks.html#osx.API", false)
CHECKER("unix.Malloc", MallocChecker, "Check for memory leaks, double free, and use-after-free problems. Traces memory managed by malloc()/free().", "https://clang-analyzer.llvm.org/available_checks.html#unix.Malloc", false)
CHECKER("alpha.security.MallocOverflow", MallocOverflowSecurityChecker, "Check for overflows in the arguments to malloc()", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.security.MallocOverflow", false)
CHECKER("unix.MallocSizeof", MallocSizeofChecker, "Check for dubious malloc arguments involving sizeof", "https://clang-analyzer.llvm.org/available_checks.html#unix.MallocSizeof", false)
CHECKER("unix.MismatchedDeallocator", MismatchedDeallocatorChecker, "Check for mismatched deallocators.", "https://clang-analyzer.llvm.org/available_checks.html#unix.MismatchedDeallocator", false)
CHECKER("alpha.cplusplus.MismatchedIterator", MismatchedIteratorChecker, "Check for use of iterators of different containers where iterators of the same container are expected", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.cplusplus.MismatchedIterator", false)
CHECKER("alpha.osx.cocoa.MissingInvalidationMethod", MissingInvalidationMethod, "Check that the invalidation methods are present in classes that contain invalidatable instance variables", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.osx.cocoa.MissingInvalidationMethod", false)
CHECKER("alpha.security.MmapWriteExec", MmapWriteExecChecker, "Warn on mmap() calls that are both writable and executable", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.security.MmapWriteExec", false)
CHECKER("cplusplus.Move", MoveChecker, "Find use-after-move bugs in C++", "https://clang-analyzer.llvm.org/available_checks.html#cplusplus.Move", false)
CHECKER("osx.cocoa.NSAutoreleasePool", NSAutoreleasePoolChecker, "Warn for suboptimal uses of NSAutoreleasePool in Objective-C GC mode", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.NSAutoreleasePool", false)
CHECKER("osx.cocoa.NSError", NSErrorChecker, "Check usage of NSError** parameters", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.NSError", false)
CHECKER("osx.NSOrCFErrorDerefChecker", NSOrCFErrorDerefChecker, "Implementation checker for NSErrorChecker and CFErrorChecker", "", true)
CHECKER("cplusplus.NewDelete", NewDeleteChecker, "Check for double-free and use-after-free problems. Traces memory managed by new/delete.", "https://clang-analyzer.llvm.org/available_checks.html#cplusplus.NewDelete", false)
CHECKER("cplusplus.NewDeleteLeaks", NewDeleteLeaksChecker, "Check for memory leaks. Traces memory managed by new/delete.", "https://clang-analyzer.llvm.org/available_checks.html#cplusplus.NewDeleteLeaks", false)
CHECKER("osx.cocoa.NilArg", NilArgChecker, "Check for prohibited nil arguments to ObjC method calls", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.NilArg", false)
CHECKER("core.builtin.NoReturnFunctions", NoReturnFunctionChecker, "Evaluate \"panic\" functions that are known to not return to the caller", "", true)
CHECKER("optin.osx.cocoa.localizability.NonLocalizedStringChecker", NonLocalizedStringChecker, "Warns about uses of non-localized NSStrings passed to UI methods expecting localized NSStrings", "https://clang-analyzer.llvm.org/available_checks.html#optin.osx.cocoa.localizability.NonLocalizedStringChecker", false)
CHECKER("core.NonNullParamChecker", NonNullParamChecker, "Check for null pointers passed as arguments to a function whose arguments are references or marked with the 'nonnull' attribute", "https://clang-analyzer.llvm.org/available_checks.html#core.NonNullParamChecker", false)
CHECKER("core.NonnilStringConstants", NonnullGlobalConstantsChecker, "Assume that const string-like globals are non-null", "", true)
CHECKER("nullability.NullPassedToNonnull", NullPassedToNonnullChecker, "Warns when a null pointer is passed to a pointer which has a _Nonnull type.", "https://clang-analyzer.llvm.org/available_checks.html#nullability.NullPassedToNonnull", false)
CHECKER("nullability.NullReturnedFromNonnull", NullReturnedFromNonnullChecker, "Warns when a null pointer is returned from a function that has _Nonnull return type.", "https://clang-analyzer.llvm.org/available_checks.html#nullability.NullReturnedFromNonnull", false)
CHECKER("nullability.NullabilityBase", NullabilityBase, "Stores information during the analysis about nullability.", "", true)
CHECKER("nullability.NullableDereferenced", NullableDereferencedChecker, "Warns when a nullable pointer is dereferenced.", "https://clang-analyzer.llvm.org/available_checks.html#nullability.NullableDereferenced", false)
CHECKER("nullability.NullablePassedToNonnull", NullablePassedToNonnullChecker, "Warns when a nullable pointer is passed to a pointer which has a _Nonnull type.", "https://clang-analyzer.llvm.org/available_checks.html#nullability.NullablePassedToNonnull", false)
CHECKER("nullability.NullableReturnedFromNonnull", NullableReturnedFromNonnullChecker, "Warns when a nullable pointer is returned from a function that has _Nonnull return type.", "", false)
CHECKER("osx.NumberObjectConversion", NumberObjectConversionChecker, "Check for erroneous conversions of objects representing numbers into numbers", "", false)
CHECKER("optin.osx.OSObjectCStyleCast", OSObjectCStyleCast, "Checker for C-style casts of OSObjects", "", false)
CHECKER("osx.OSObjectRetainCount", OSObjectRetainCountChecker, "Check for leaks and improper reference count management for OSObject", "", false)
CHECKER("osx.cocoa.AtSync", ObjCAtSyncChecker, "Check for nil pointers used as mutexes for @synchronized", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.AtSync", false)
CHECKER("osx.coreFoundation.containers.PointerSizedValues", ObjCContainersASTChecker, "Warns if 'CFArray', 'CFDictionary', 'CFSet' are created with non-pointer-size values", "https://clang-analyzer.llvm.org/available_checks.html#osx.coreFoundation.containers.PointerSizedValues", false)
CHECKER("osx.coreFoundation.containers.OutOfBounds", ObjCContainersChecker, "Checks for index out-of-bounds when using 'CFArray' API", "https://clang-analyzer.llvm.org/available_checks.html#osx.coreFoundation.containers.OutOfBounds", false)
CHECKER("osx.cocoa.Dealloc", ObjCDeallocChecker, "Warn about Objective-C classes that lack a correct implementation of -dealloc", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.Dealloc", false)
CHECKER("osx.cocoa.ObjCGenerics", ObjCGenericsChecker, "Check for type errors when using Objective-C generics", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.ObjCGenerics", false)
CHECKER("osx.cocoa.Loops", ObjCLoopChecker, "Improved modeling of loops using Cocoa collection types", "", false)
CHECKER("osx.cocoa.IncompatibleMethodTypes", ObjCMethSigsChecker, "Warn about Objective-C method signatures with type incompatibilities", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.IncompatibleMethodTypes", false)
CHECKER("osx.cocoa.NonNilReturnValue", ObjCNonNilReturnValueChecker, "Model the APIs that are guaranteed to return a non-nil value", "", false)
CHECKER("osx.ObjCProperty", ObjCPropertyChecker, "Check for proper uses of Objective-C properties", "", false)
CHECKER("osx.cocoa.SelfInit", ObjCSelfInitChecker, "Check that 'self' is properly initialized inside an initializer method", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.SelfInit", false)
CHECKER("osx.cocoa.MissingSuperCall", ObjCSuperCallChecker, "Warn about Objective-C methods that lack a necessary call to super", "", false)
CHECKER("osx.cocoa.SuperDealloc", ObjCSuperDeallocChecker, "Warn about improper use of '[super dealloc]' in Objective-C", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.SuperDealloc", false)
CHECKER("osx.cocoa.UnusedIvars", ObjCUnusedIvarsChecker, "Warn about private ivars that are never used", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.UnusedIvars", false)
CHECKER("optin.performance.Padding", PaddingChecker, "Check for excessively padded structs.", "", false)
CHECKER("alpha.osx.cocoa.localizability.PluralMisuseChecker", PluralMisuseChecker, "Warns against using one vs. many plural pattern in code when generating localized strings.", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.osx.cocoa.localizability.PluralMisuseChecker", false)
CHECKER("alpha.core.PointerArithm", PointerArithChecker, "Check for pointer arithmetic on locations other than array elements", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.PointerArithm", false)
CHECKER("alpha.nondeterminism.PointerIteration", PointerIterationChecker, "Checks for non-determinism caused by iteration of unordered containers of pointers", "https://clang-analyzer.llvm.org/available_checks.html#alpha.nondeterminism.PointerIteration", false)
CHECKER("alpha.nondeterminism.PointerSorting", PointerSortingChecker, "Check for non-determinism caused by sorting of pointers", "https://clang-analyzer.llvm.org/available_checks.html#alpha.nondeterminism.PointerSorting", false)
CHECKER("alpha.core.PointerSub", PointerSubChecker, "Check for pointer subtractions on two pointers pointing to different memory chunks", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.PointerSub", false)
CHECKER("debug.DumpPostDominators", PostDominatorsTreeDumper, "Print the post dominance tree for a given CFG", "", true)
CHECKER("alpha.unix.PthreadLock", PthreadLockChecker, "Simple lock -> unlock checker", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.PthreadLock", false)
CHECKER("debug.ReportStmts", ReportStmts, "Emits a warning for every statement.", "", true)
CHECKER("osx.cocoa.RetainCountBase", RetainCountBase, "Common base of various retain count related checkers", "", true)
CHECKER("osx.cocoa.RetainCount", RetainCountChecker, "Check for leaks and improper reference count management", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.RetainCount", false)
CHECKER("alpha.security.ReturnPtrRange", ReturnPointerRangeChecker, "Check for an out-of-bound pointer being returned to callers", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.security.ReturnPtrRange", false)
CHECKER("core.uninitialized.UndefReturn", ReturnUndefChecker, "Check for uninitialized values being returned to the caller", "https://clang-analyzer.llvm.org/available_checks.html#core.uninitialized.UndefReturn", false)
CHECKER("apiModeling.llvm.ReturnValue", ReturnValueChecker, "Model the guaranteed boolean return value of function calls", "", true)
CHECKER("osx.cocoa.RunLoopAutoreleaseLeak", RunLoopAutoreleaseLeakChecker, "Check for leaked memory in autorelease pools that will never be drained", "", false)
CHECKER("security.insecureAPI.SecuritySyntaxChecker", SecuritySyntaxChecker, "Base of various security function related checkers", "", true)
CHECKER("alpha.unix.SimpleStream", SimpleStreamChecker, "Check for misuses of stream APIs", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.SimpleStream", false)
CHECKER("alpha.core.SizeofPtr", SizeofPointerChecker, "Warn about unintended use of sizeof() on pointer expressions", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.SizeofPtr", false)
CHECKER("cplusplus.SmartPtr", SmartPtrModeling, "Model behavior of C++ smart pointers", "", true)
CHECKER("alpha.core.StackAddressAsyncEscape", StackAddrAsyncEscapeChecker, "Check that addresses to stack memory do not escape the function", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.StackAddressAsyncEscape", false)
CHECKER("core.StackAddrEscapeBase", StackAddrEscapeBase, "Generate information about stack address escapes.", "", true)
CHECKER("core.StackAddressEscape", StackAddrEscapeChecker, "Check that addresses to stack memory do not escape the function", "https://clang-analyzer.llvm.org/available_checks.html#core.StackAddressEscape", false)
CHECKER("apiModeling.StdCLibraryFunctions", StdCLibraryFunctionsChecker, "Improve modeling of the C standard library functions", "", true)
CHECKER("alpha.unix.Stream", StreamChecker, "Check stream handling functions", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.unix.Stream", false)
CHECKER("debug.TaintTest", TaintTesterChecker, "Mark tainted symbols as such.", "", true)
CHECKER("alpha.core.TestAfterDivZero", TestAfterDivZeroChecker, "Check for division by variable that is later compared against 0. Either the comparison is useless or there is division by zero.", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.core.TestAfterDivZero", false)
CHECKER("debug.DumpTraversal", TraversalDumper, "Print branch conditions as they are traversed by the engine", "", true)
CHECKER("apiModeling.TrustNonnull", TrustNonnullChecker, "Trust that returns from framework methods annotated with _Nonnull are not null", "", true)
CHECKER("security.insecureAPI.UncheckedReturn", UncheckedReturn, "Warn on uses of functions whose return values must be always checked", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.UncheckedReturn", false)
CHECKER("core.uninitialized.Branch", UndefBranchChecker, "Check for uninitialized values used as branch conditions", "https://clang-analyzer.llvm.org/available_checks.html#core.uninitialized.Branch", false)
CHECKER("core.uninitialized.CapturedBlockVariable", UndefCapturedBlockVarChecker, "Check for blocks that capture uninitialized values", "", false)
CHECKER("core.UndefinedBinaryOperatorResult", UndefResultChecker, "Check for undefined results of binary operators", "https://clang-analyzer.llvm.org/available_checks.html#core.UndefinedBinaryOperatorResult", false)
CHECKER("core.uninitialized.ArraySubscript", UndefinedArraySubscriptChecker, "Check for uninitialized values used as array subscripts", "https://clang-analyzer.llvm.org/available_checks.html#core.uninitialized.ArraySubscript", false)
CHECKER("core.uninitialized.Assign", UndefinedAssignmentChecker, "Check for assigning uninitialized values", "https://clang-analyzer.llvm.org/available_checks.html#core.uninitialized.Assign", false)
CHECKER("valist.Uninitialized", UninitializedChecker, "Check for usages of uninitialized (or already released) va_lists.", "", false)
CHECKER("optin.cplusplus.UninitializedObject", UninitializedObjectChecker, "Reports uninitialized fields after object construction", "https://clang-analyzer.llvm.org/alpha_checks.html#optin.cplusplus.UninitializedObject", false)
CHECKER("unix.API", UnixAPIMisuseChecker, "Check calls to various UNIX/Posix functions", "https://clang-analyzer.llvm.org/available_checks.html#unix.API", false)
CHECKER("optin.portability.UnixAPI", UnixAPIPortabilityChecker, "Finds implementation-defined behavior in UNIX/Posix functions", "", false)
CHECKER("alpha.deadcode.UnreachableCode", UnreachableCodeChecker, "Check unreachable code", "https://clang-analyzer.llvm.org/alpha_checks.html#alpha.deadcode.UnreachableCode", false)
CHECKER("valist.Unterminated", UnterminatedChecker, "Check for va_lists which are not released by a va_end call.", "", false)
CHECKER("core.VLASize", VLASizeChecker, "Check for declarations of VLA of undefined or zero size", "https://clang-analyzer.llvm.org/available_checks.html#core.VLASize", false)
CHECKER("valist.ValistBase", ValistBase, "Gathers information about va_lists.", "", true)
CHECKER("osx.cocoa.VariadicMethodTypes", VariadicMethodTypeChecker, "Check for passing non-Objective-C types to variadic collection initialization methods that expect only Objective-C types", "https://clang-analyzer.llvm.org/available_checks.html#osx.cocoa.VariadicMethodTypes", false)
CHECKER("unix.Vfork", VforkChecker, "Check for proper usage of vfork", "https://clang-analyzer.llvm.org/available_checks.html#unix.Vfork", false)
CHECKER("optin.cplusplus.VirtualCall", VirtualCallChecker, "Check virtual function calls during construction or destruction", "https://clang-analyzer.llvm.org/available_checks.html#optin.cplusplus.VirtualCall", false)
CHECKER("security.insecureAPI.bcmp", bcmp, "Warn on uses of the 'bcmp' function", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.bcmp", false)
CHECKER("security.insecureAPI.bcopy", bcopy, "Warn on uses of the 'bcopy' function", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.bcopy", false)
CHECKER("security.insecureAPI.bzero", bzero, "Warn on uses of the 'bzero' function", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.bzero", false)
CHECKER("security.insecureAPI.getpw", getpw, "Warn on uses of the 'getpw' function", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.getpw", false)
CHECKER("security.insecureAPI.gets", gets, "Warn on uses of the 'gets' function", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.gets", false)
CHECKER("security.insecureAPI.mkstemp", mkstemp, "Warn when 'mkstemp' is passed fewer than 6 X's in the format string", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.mkstemp", false)
CHECKER("security.insecureAPI.mktemp", mktemp, "Warn on uses of the 'mktemp' function", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.mktemp", false)
CHECKER("security.insecureAPI.rand", rand, "Warn on uses of the 'rand', 'random', and related functions", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.rand", false)
CHECKER("security.insecureAPI.strcpy", strcpy, "Warn on uses of the 'strcpy' and 'strcat' functions", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.strcpy", false)
CHECKER("security.insecureAPI.vfork", vfork, "Warn on uses of the 'vfork' function", "https://clang-analyzer.llvm.org/available_checks.html#security.insecureAPI.vfork", false)
#endif // GET_CHECKERS
#ifdef GET_CHECKER_DEPENDENCIES
CHECKER_DEPENDENCY("osx.coreFoundation.CFError", "osx.NSOrCFErrorDerefChecker")
CHECKER_DEPENDENCY("alpha.unix.cstring.BufferOverlap", "unix.cstring.CStringModeling")
CHECKER_DEPENDENCY("alpha.unix.cstring.NotNullTerminated", "unix.cstring.CStringModeling")
CHECKER_DEPENDENCY("unix.cstring.NullArg", "unix.cstring.CStringModeling")
CHECKER_DEPENDENCY("alpha.unix.cstring.OutOfBounds", "unix.cstring.CStringModeling")
CHECKER_DEPENDENCY("unix.cstring.BadSizeArg", "unix.cstring.CStringModeling")
CHECKER_DEPENDENCY("alpha.core.CallAndMessageUnInitRefArg", "core.CallAndMessage")
CHECKER_DEPENDENCY("valist.CopyToSelf", "valist.ValistBase")
CHECKER_DEPENDENCY("security.insecureAPI.DeprecatedOrUnsafeBufferHandling", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("alpha.osx.cocoa.DirectIvarAssignmentForAnnotatedFunctions", "alpha.osx.cocoa.DirectIvarAssignment")
CHECKER_DEPENDENCY("unix.DynamicMemoryModeling", "unix.cstring.CStringModeling")
CHECKER_DEPENDENCY("security.FloatLoopCounter", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("cplusplus.InnerPointer", "unix.DynamicMemoryModeling")
CHECKER_DEPENDENCY("alpha.osx.cocoa.InstanceVariableInvalidation", "alpha.osx.cocoa.IvarInvalidationModeling")
CHECKER_DEPENDENCY("alpha.cplusplus.InvalidatedIterator", "alpha.cplusplus.IteratorModeling")
CHECKER_DEPENDENCY("alpha.cplusplus.IteratorRange", "alpha.cplusplus.IteratorModeling")
CHECKER_DEPENDENCY("unix.Malloc", "unix.DynamicMemoryModeling")
CHECKER_DEPENDENCY("unix.MismatchedDeallocator", "unix.DynamicMemoryModeling")
CHECKER_DEPENDENCY("alpha.cplusplus.MismatchedIterator", "alpha.cplusplus.IteratorModeling")
CHECKER_DEPENDENCY("alpha.osx.cocoa.MissingInvalidationMethod", "alpha.osx.cocoa.IvarInvalidationModeling")
CHECKER_DEPENDENCY("osx.cocoa.NSError", "osx.NSOrCFErrorDerefChecker")
CHECKER_DEPENDENCY("cplusplus.NewDelete", "unix.DynamicMemoryModeling")
CHECKER_DEPENDENCY("cplusplus.NewDeleteLeaks", "cplusplus.NewDelete")
CHECKER_DEPENDENCY("nullability.NullPassedToNonnull", "nullability.NullabilityBase")
CHECKER_DEPENDENCY("nullability.NullReturnedFromNonnull", "nullability.NullabilityBase")
CHECKER_DEPENDENCY("nullability.NullableDereferenced", "nullability.NullabilityBase")
CHECKER_DEPENDENCY("nullability.NullablePassedToNonnull", "nullability.NullabilityBase")
CHECKER_DEPENDENCY("nullability.NullableReturnedFromNonnull", "nullability.NullabilityBase")
CHECKER_DEPENDENCY("osx.OSObjectRetainCount", "osx.cocoa.RetainCountBase")
CHECKER_DEPENDENCY("osx.cocoa.ObjCGenerics", "core.DynamicTypePropagation")
CHECKER_DEPENDENCY("osx.cocoa.RetainCount", "osx.cocoa.RetainCountBase")
CHECKER_DEPENDENCY("alpha.core.StackAddressAsyncEscape", "core.StackAddrEscapeBase")
CHECKER_DEPENDENCY("core.StackAddressEscape", "core.StackAddrEscapeBase")
CHECKER_DEPENDENCY("security.insecureAPI.UncheckedReturn", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("valist.Uninitialized", "valist.ValistBase")
CHECKER_DEPENDENCY("valist.Unterminated", "valist.ValistBase")
CHECKER_DEPENDENCY("security.insecureAPI.bcmp", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.bcopy", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.bzero", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.getpw", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.gets", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.mkstemp", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.mktemp", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.rand", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.strcpy", "security.insecureAPI.SecuritySyntaxChecker")
CHECKER_DEPENDENCY("security.insecureAPI.vfork", "security.insecureAPI.SecuritySyntaxChecker")
#endif // GET_CHECKER_DEPENDENCIES
#ifdef GET_CHECKER_OPTIONS
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PreStmtCastExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PostStmtCastExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PreStmtArraySubscriptExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PostStmtArraySubscriptExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PreStmtCXXNewExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PostStmtCXXNewExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PreStmtOffsetOfExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PostStmtOffsetOfExpr", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PreCall", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "PostCall", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "EndFunction", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "NewAllocator", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "Bind", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "LiveSymbols", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "RegionChanges", "", "false", "released", true)
CHECKER_OPTION("bool", "debug.AnalysisOrder", "*", "Enables all callbacks.", "false", "released", true)
CHECKER_OPTION("int", "alpha.clone.CloneChecker", "MinimumCloneComplexity", "Ensures that every clone has at least the given complexity. Complexity is here defined as the total amount of children of a statement. This constraint assumes the first statement in the group is representative for all other statements in the group in terms of complexity.", "50", "released", false)
CHECKER_OPTION("bool", "alpha.clone.CloneChecker", "ReportNormalClones", "Report all clones, even less suspicious ones.", "true", "released", false)
CHECKER_OPTION("string", "alpha.clone.CloneChecker", "IgnoredFilesPattern", "If supplied, the checker wont analyze files with a filename that matches the given pattern.", "\"\"", "released", false)
CHECKER_OPTION("bool", "unix.DynamicMemoryModeling", "Optimistic", "If set to true, the checker assumes that all the allocating and deallocating functions are annotated with ownership_holds, ownership_takes and ownership_returns.", "false", "alpha", false)
CHECKER_OPTION("int", "alpha.security.MmapWriteExec", "MmapProtExec", "Specifies the value of PROT_EXEC", "0x04", "released", false)
CHECKER_OPTION("int", "alpha.security.MmapWriteExec", "MmapProtRead", "Specifies the value of PROT_READ", "0x01", "released", false)
CHECKER_OPTION("string", "cplusplus.Move", "WarnOn", "In non-aggressive mode, only warn on use-after-move of local variables (or local rvalue references) and of STL objects. The former is possible because local variables (or local rvalue references) are not tempting their user to re-use the storage. The latter is possible because STL objects are known to end up in a valid but unspecified state after the move and their state-reset methods are also known, which allows us to predict precisely when use-after-move is invalid. Some STL objects are known to conform to additional contracts after move, so they are not tracked. However, smart pointers specifically are tracked because we can perform extra checking over them. In aggressive mode, warn on any use-after-move because the user has intentionally asked us to completely eliminate use-after-move in his code. Values: \"KnownsOnly\", \"KnownsAndLocals\", \"All\".", "KnownsAndLocals", "released", false)
CHECKER_OPTION("bool", "optin.osx.cocoa.localizability.NonLocalizedStringChecker", "AggressiveReport", "Marks a string being returned by any call as localized if it is in LocStringFunctions (LSF) or the function is annotated. Otherwise, we mark it as NonLocalized (Aggressive) or NonLocalized only if it is not backed by a SymRegion (Non-Aggressive), basically leaving only string literals as NonLocalized.", "false", "alpha", true)
CHECKER_OPTION("bool", "osx.NumberObjectConversion", "Pedantic", "Enables detection of more conversion patterns (which are most likely more harmless, and therefore are more likely to produce false positives).", "false", "released", false)
CHECKER_OPTION("int", "optin.performance.Padding", "AllowedPad", "Reports are only generated if the excessive padding exceeds 'AllowedPad' in bytes.", "24", "released", false)
CHECKER_OPTION("bool", "osx.cocoa.RetainCount", "CheckOSObject", "Find violations of retain-release rules applied to XNU OSObject instances. By default, the checker only checks retain-release rules for Objective-C NSObject instances and CoreFoundation objects.", "true", "alpha", true)
CHECKER_OPTION("bool", "osx.cocoa.RetainCount", "TrackNSCFStartParam", "Check not only that the code follows retain-release rules with respect to objects it allocates or borrows from elsewhere, but also that it fulfills its own retain count specification with respect to objects that it receives as arguments.", "false", "released", false)
CHECKER_OPTION("bool", "optin.cplusplus.UninitializedObject", "Pedantic", "If set to false, the checker won't emit warnings for objects that don't have at least one initialized field.", "false", "released", false)
CHECKER_OPTION("bool", "optin.cplusplus.UninitializedObject", "NotesAsWarnings", "If set to true, the checker will emit a warning for each uninitalized field, as opposed to emitting one warning per constructor call, and listing the uninitialized fields that belongs to it in notes.", "false", "released", true)
CHECKER_OPTION("bool", "optin.cplusplus.UninitializedObject", "CheckPointeeInitialization", "If set to false, the checker will not analyze the pointee of pointer/reference fields, and will only check whether the object itself is initialized.", "false", "alpha", false)
CHECKER_OPTION("string", "optin.cplusplus.UninitializedObject", "IgnoreRecordsWithField", "If supplied, the checker will not analyze structures that have a field with a name or type name that matches the given pattern.", "\"\"", "released", false)
CHECKER_OPTION("bool", "optin.cplusplus.UninitializedObject", "IgnoreGuardedFields", "If set to true, the checker will analyze _syntactically_ whether the found uninitialized object is used without a preceding assert call. Defaults to false.", "false", "alpha", false)
CHECKER_OPTION("bool", "optin.cplusplus.VirtualCall", "PureOnly", "Whether to only report calls to pure virtual methods.", "false", "released", false)
#endif // GET_CHECKER_OPTIONS