Checkers.td revision 23ade507cecd24b03f5e4b5ebaea48eb38060262
1//===--- Checkers.td - Static Analyzer Checkers -===-----------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10include "clang/StaticAnalyzer/Checkers/CheckerBase.td" 11 12//===----------------------------------------------------------------------===// 13// Packages. 14//===----------------------------------------------------------------------===// 15 16def Core : Package<"core">; 17def Cocoa : Package<"cocoa">; 18def Unix : Package<"unix">; 19def MacOSX : Package<"macosx">; 20 21def CoreExperimental : Package<"experimental">, 22 InPackage<Core>, Hidden; 23 24def UnixExperimental : Package<"experimental">, 25 InPackage<Unix>, Hidden; 26 27//===----------------------------------------------------------------------===// 28// Groups. 29//===----------------------------------------------------------------------===// 30 31def AllExperimental : CheckerGroup<"all-experimental">, 32 Hidden; 33 34//===----------------------------------------------------------------------===// 35// Checkers. 36//===----------------------------------------------------------------------===// 37 38let ParentPackage = Cocoa in { 39 40def ObjCSelfInitChecker : Checker<"SelfInit">, 41 HelpText<"Check that 'self' is propely initialized inside an initializer method">, 42 DescFile<"ObjCSelfInitChecker.cpp">; 43 44def ObjCAtSyncChecker : Checker<"AtSync">, 45 HelpText<"Check for null pointers used as mutexes for @synchronized">, 46 DescFile<"ObjCAtSyncChecker.cpp">; 47 48} 49 50def StackAddrLeakChecker : Checker<"StackAddrLeak">, 51 InPackage<Core>, 52 HelpText<"Check that addresses to stack memory are not leaked outside the function">, 53 DescFile<"StackAddrLeakChecker.cpp">; 54 55def UnixAPIChecker : Checker<"API">, 56 InPackage<Unix>, 57 HelpText<"Check calls to various UNIX/Posix functions">, 58 DescFile<"UnixAPIChecker.cpp">; 59 60def MacOSXAPIChecker : Checker<"API">, 61 InPackage<MacOSX>, 62 HelpText<"Check calls to various MacOSXAPIChecker">, 63 DescFile<"MacOSXAPIChecker.cpp">; 64 65//===----------------------------------------------------------------------===// 66// Hidden experimental checkers. 67//===----------------------------------------------------------------------===// 68 69let Group = AllExperimental in { 70 71def CStringChecker : Checker<"CString">, 72 InPackage<CoreExperimental>, 73 HelpText<"Check calls to functions in <string.h>">, 74 DescFile<"CStringChecker.cpp">; 75 76def UnreachableCodeChecker : Checker<"UnreachableCode">, 77 InPackage<CoreExperimental>, 78 HelpText<"Check unreachable code">, 79 DescFile<"UnreachableCodeChecker.cpp">; 80 81def IdempotentOperationChecker : Checker<"IdempotentOps">, 82 InPackage<CoreExperimental>, 83 HelpText<"Warn about idempotent operations">, 84 DescFile<"IdempotentOperationChecker.cpp">; 85 86def CastToStructChecker : Checker<"CastToStruct">, 87 InPackage<CoreExperimental>, 88 HelpText<"Check for cast from non-struct pointer to struct pointer">, 89 DescFile<"CastToStructChecker.cpp">; 90 91def FixedAddressChecker : Checker<"FixedAddr">, 92 InPackage<CoreExperimental>, 93 HelpText<"Check for assignment of a fixed address to a pointer">, 94 DescFile<"FixedAddressChecker.cpp">; 95 96def PointerArithChecker : Checker<"PointerArithm">, 97 InPackage<CoreExperimental>, 98 HelpText<"Check for pointer arithmetic on locations other than array elements">, 99 DescFile<"PointerArithChecker">; 100 101def PointerSubChecker : Checker<"PointerSub">, 102 InPackage<CoreExperimental>, 103 HelpText<"Check for pointer subtractions on two pointers pointing to different memory chunks">, 104 DescFile<"PointerSubChecker">; 105 106def ChrootChecker : Checker<"Chroot">, 107 InPackage<UnixExperimental>, 108 HelpText<"Check improper use of chroot">, 109 DescFile<"ChrootChecker.cpp">; 110 111def PthreadLockChecker : Checker<"PthreadLock">, 112 InPackage<UnixExperimental>, 113 HelpText<"Simple lock -> unlock checker">, 114 DescFile<"PthreadLockChecker.cpp">; 115 116def StreamChecker : Checker<"Stream">, 117 InPackage<UnixExperimental>, 118 HelpText<"Check stream handling functions">, 119 DescFile<"StreamChecker.cpp">; 120 121} 122