blob: 2fb7e9fa482f9ac9967de670a267eef4ba9e4b6f [file] [log] [blame]
Ted Kremenekeb941132009-11-13 01:15:47 +00001//=-- GRExprEngineExperimentalChecks.h ------------------------------*- 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 experimental
11// checks in GRExprEngine.
12//
13//===----------------------------------------------------------------------===//
14
Ted Kremenek8382cf52009-11-13 18:46:29 +000015#include "GRExprEngineInternalChecks.h"
Ted Kremenekeb941132009-11-13 01:15:47 +000016#include "GRExprEngineExperimentalChecks.h"
17#include "clang/Analysis/LocalCheckers.h"
18
19using namespace clang;
20
Ted Kremenek8382cf52009-11-13 18:46:29 +000021void clang::RegisterExperimentalChecks(GRExprEngine &Eng) {
22 // These are checks that never belong as internal checks
23 // within GRExprEngine.
Ted Kremenekeb941132009-11-13 01:15:47 +000024 RegisterPthreadLockChecker(Eng);
Zhongxing Xu7b760962009-11-13 07:25:27 +000025 RegisterMallocChecker(Eng);
Ted Kremenekeb941132009-11-13 01:15:47 +000026}
27
Ted Kremenek8382cf52009-11-13 18:46:29 +000028void clang::RegisterExperimentalInternalChecks(GRExprEngine &Eng) {
29 // These are internal checks that should eventually migrate to
30 // RegisterInternalChecks() once they have been further tested.
31
32 // Note that this must be registered after ReturnStackAddresEngsChecker.
33 RegisterReturnPointerRangeChecker(Eng);
34 RegisterPointerSubChecker(Eng);
35 RegisterPointerArithChecker(Eng);
36 RegisterCastToStructChecker(Eng);
37 RegisterArrayBoundChecker(Eng);
38}