blob: 740a914cfcd1039f15a0d74809cfac60a39a49b9 [file] [log] [blame]
Ted Kremenekbee01e52009-11-06 02:24:13 +00001//=-- GRExprEngineInternalChecks.h- Builtin GRExprEngine Checks -----*- C++ -*-=
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//
10// This file defines functions to instantiate and register the "built-in"
11// checks in GRExprEngine.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_CLANG_GREXPRENGINE_INTERNAL_CHECKS
16#define LLVM_CLANG_GREXPRENGINE_INTERNAL_CHECKS
17
18namespace clang {
19
20class GRExprEngine;
21
Ted Kremenek11e899c2010-02-25 00:20:25 +000022// Foundational checks that handle basic semantics.
Ted Kremenek1e3b9552010-02-04 00:47:48 +000023void RegisterAdjustedReturnValueChecker(GRExprEngine &Eng);
Ted Kremenek43fddf72010-02-25 00:20:22 +000024void RegisterArrayBoundChecker(GRExprEngine &Eng);
Ted Kremenek43253152009-11-11 05:50:44 +000025void RegisterAttrNonNullChecker(GRExprEngine &Eng);
Ted Kremenek43fddf72010-02-25 00:20:22 +000026void RegisterBuiltinFunctionChecker(GRExprEngine &Eng);
27void RegisterCallAndMessageChecker(GRExprEngine &Eng);
28void RegisterCastToStructChecker(GRExprEngine &Eng);
Zhongxing Xu658dd8b2010-05-25 04:59:19 +000029void RegisterCastSizeChecker(GRExprEngine &Eng);
Ted Kremenek5e1f78a2009-11-11 03:26:34 +000030void RegisterDereferenceChecker(GRExprEngine &Eng);
Ted Kremenek53a70c02009-11-06 20:47:51 +000031void RegisterDivZeroChecker(GRExprEngine &Eng);
Ted Kremenek43fddf72010-02-25 00:20:22 +000032void RegisterFixedAddressChecker(GRExprEngine &Eng);
33void RegisterNoReturnFunctionChecker(GRExprEngine &Eng);
Ted Kremeneke495c992010-09-10 03:05:40 +000034void RegisterObjCAtSyncChecker(GRExprEngine &Eng);
Ted Kremenek43fddf72010-02-25 00:20:22 +000035void RegisterPointerArithChecker(GRExprEngine &Eng);
36void RegisterPointerSubChecker(GRExprEngine &Eng);
Zhongxing Xu167bce92009-11-06 13:30:44 +000037void RegisterReturnPointerRangeChecker(GRExprEngine &Eng);
Ted Kremenek53a70c02009-11-06 20:47:51 +000038void RegisterReturnUndefChecker(GRExprEngine &Eng);
Zhongxing Xu87e7fc52010-06-08 10:00:00 +000039void RegisterStackAddrLeakChecker(GRExprEngine &Eng);
Zhongxing Xu56dd5f02009-11-23 03:20:54 +000040void RegisterUndefBranchChecker(GRExprEngine &Eng);
Ted Kremenek22863972010-02-16 08:33:59 +000041void RegisterUndefCapturedBlockVarChecker(GRExprEngine &Eng);
Zhongxing Xuc6123a12009-11-24 08:24:26 +000042void RegisterUndefResultChecker(GRExprEngine &Eng);
Ted Kremenek43fddf72010-02-25 00:20:22 +000043void RegisterUndefinedArraySubscriptChecker(GRExprEngine &Eng);
44void RegisterUndefinedAssignmentChecker(GRExprEngine &Eng);
45void RegisterVLASizeChecker(GRExprEngine &Eng);
Ted Kremenek11e899c2010-02-25 00:20:25 +000046
47// API checks.
Ted Kremenekb663ffe2010-02-25 05:44:09 +000048void RegisterMacOSXAPIChecker(GRExprEngine &Eng);
Ted Kremenek11e899c2010-02-25 00:20:25 +000049void RegisterOSAtomicChecker(GRExprEngine &Eng);
Ted Kremenekd55522f2010-02-25 00:20:35 +000050void RegisterUnixAPIChecker(GRExprEngine &Eng);
Ted Kremenek11e899c2010-02-25 00:20:25 +000051
Ted Kremenekbee01e52009-11-06 02:24:13 +000052} // end clang namespace
53#endif