blob: 42bd9687dcf53cfd502d409ef4068e42cd042b29 [file] [log] [blame]
Argyrios Kyrtzidis04291a72011-02-08 22:30:02 +00001//=-- InternalChecks.h- Builtin ExprEngine Checks -------------------*- C++ -*-=
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +00002//
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 ExprEngine.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_CLANG_GR_ExprEngine_INTERNAL_CHECKS
16#define LLVM_CLANG_GR_ExprEngine_INTERNAL_CHECKS
17
18namespace clang {
19
Ted Kremenek9ef65372010-12-23 07:20:52 +000020namespace ento {
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000021
22class ExprEngine;
23
24// Foundational checks that handle basic semantics.
25void RegisterAdjustedReturnValueChecker(ExprEngine &Eng);
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000026void RegisterAttrNonNullChecker(ExprEngine &Eng);
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000027void RegisterCallAndMessageChecker(ExprEngine &Eng);
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000028void RegisterDereferenceChecker(ExprEngine &Eng);
29void RegisterDivZeroChecker(ExprEngine &Eng);
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000030void RegisterReturnUndefChecker(ExprEngine &Eng);
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000031void RegisterUndefinedArraySubscriptChecker(ExprEngine &Eng);
32void RegisterUndefinedAssignmentChecker(ExprEngine &Eng);
33void RegisterVLASizeChecker(ExprEngine &Eng);
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000034
Argyrios Kyrtzidisd2592a32010-12-22 18:53:44 +000035} // end GR namespace
36
37} // end clang namespace
38
39#endif