blob: a4bcd72143427f8755088c0605ef6731d444cc13 [file] [log] [blame]
Ted Kremenek1053d242009-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 Kremeneke5b0fa42010-02-25 00:20:25 +000022// Foundational checks that handle basic semantics.
Ted Kremenek40c37e12010-02-04 00:47:48 +000023void RegisterAdjustedReturnValueChecker(GRExprEngine &Eng);
Ted Kremenek9b251702010-02-25 00:20:22 +000024void RegisterArrayBoundChecker(GRExprEngine &Eng);
Ted Kremenekf493f492009-11-11 05:50:44 +000025void RegisterAttrNonNullChecker(GRExprEngine &Eng);
Ted Kremenek9b251702010-02-25 00:20:22 +000026void RegisterBuiltinFunctionChecker(GRExprEngine &Eng);
27void RegisterCallAndMessageChecker(GRExprEngine &Eng);
28void RegisterCastToStructChecker(GRExprEngine &Eng);
Ted Kremenekb4b817d2009-11-11 03:26:34 +000029void RegisterDereferenceChecker(GRExprEngine &Eng);
Ted Kremenek36df58a2009-11-06 20:47:51 +000030void RegisterDivZeroChecker(GRExprEngine &Eng);
Ted Kremenek9b251702010-02-25 00:20:22 +000031void RegisterFixedAddressChecker(GRExprEngine &Eng);
32void RegisterNoReturnFunctionChecker(GRExprEngine &Eng);
Ted Kremenek9b251702010-02-25 00:20:22 +000033void RegisterPointerArithChecker(GRExprEngine &Eng);
34void RegisterPointerSubChecker(GRExprEngine &Eng);
Zhongxing Xuceeb02d2009-11-06 13:30:44 +000035void RegisterReturnPointerRangeChecker(GRExprEngine &Eng);
Ted Kremeneke5b0fa42010-02-25 00:20:25 +000036void RegisterReturnStackAddressChecker(GRExprEngine &Eng);
Ted Kremenek36df58a2009-11-06 20:47:51 +000037void RegisterReturnUndefChecker(GRExprEngine &Eng);
Zhongxing Xu0835e4c2009-11-23 03:20:54 +000038void RegisterUndefBranchChecker(GRExprEngine &Eng);
Ted Kremenek94fd0b82010-02-16 08:33:59 +000039void RegisterUndefCapturedBlockVarChecker(GRExprEngine &Eng);
Zhongxing Xu668399b2009-11-24 08:24:26 +000040void RegisterUndefResultChecker(GRExprEngine &Eng);
Ted Kremenek9b251702010-02-25 00:20:22 +000041void RegisterUndefinedArraySubscriptChecker(GRExprEngine &Eng);
42void RegisterUndefinedAssignmentChecker(GRExprEngine &Eng);
43void RegisterVLASizeChecker(GRExprEngine &Eng);
Ted Kremeneke5b0fa42010-02-25 00:20:25 +000044
45// API checks.
46void RegisterOSAtomicChecker(GRExprEngine &Eng);
Ted Kremenek381d1bf2010-02-25 00:20:35 +000047void RegisterUnixAPIChecker(GRExprEngine &Eng);
Ted Kremeneke5b0fa42010-02-25 00:20:25 +000048
Ted Kremenek1053d242009-11-06 02:24:13 +000049} // end clang namespace
50#endif