Checkers.td revision c9f2e0f286500c7e747849b3aa9c0e67a4dc90d7
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 ChrootChecker : Checker<"Chroot">, 87 InPackage<UnixExperimental>, 88 HelpText<"Check improper use of chroot">, 89 DescFile<"ChrootChecker.cpp">; 90 91def PthreadLockChecker : Checker<"PthreadLock">, 92 InPackage<UnixExperimental>, 93 HelpText<"Simple lock -> unlock checker">, 94 DescFile<"PthreadLockChecker.cpp">; 95 96def StreamChecker : Checker<"Stream">, 97 InPackage<UnixExperimental>, 98 HelpText<"Check stream handling functions">, 99 DescFile<"StreamChecker.cpp">; 100 101} 102