blob: 6f70286e9bedf8b45569f5596eda3fc78b9f8283 [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"
Ted Kremenek97053092010-01-26 22:59:55 +000017#include "clang/Checker/Checkers/LocalCheckers.h"
Ted Kremenekeb941132009-11-13 01:15:47 +000018
19using namespace clang;
20
Tom Carec4b5bd82010-07-23 23:04:53 +000021void clang::RegisterExperimentalChecks(GRExprEngine &Eng) {
Ted Kremenek8382cf52009-11-13 18:46:29 +000022 // These are checks that never belong as internal checks
23 // within GRExprEngine.
Jordy Roseccbf7ee2010-07-06 23:11:01 +000024 RegisterCStringChecker(Eng);
Zhongxing Xu1c9e6b12010-10-10 05:45:30 +000025 RegisterChrootChecker(Eng);
Tom Carec4b5bd82010-07-23 23:04:53 +000026 RegisterMallocChecker(Eng);
27 RegisterPthreadLockChecker(Eng);
28 RegisterStreamChecker(Eng);
29 RegisterUnreachableCodeChecker(Eng);
Ted Kremenekeb941132009-11-13 01:15:47 +000030}
31
Ted Kremenek8382cf52009-11-13 18:46:29 +000032void clang::RegisterExperimentalInternalChecks(GRExprEngine &Eng) {
33 // These are internal checks that should eventually migrate to
34 // RegisterInternalChecks() once they have been further tested.
35
36 // Note that this must be registered after ReturnStackAddresEngsChecker.
37 RegisterReturnPointerRangeChecker(Eng);
Ted Kremenek68c9ced2009-11-21 17:55:24 +000038
Ted Kremenek8382cf52009-11-13 18:46:29 +000039 RegisterArrayBoundChecker(Eng);
Tom Carec4b5bd82010-07-23 23:04:53 +000040 RegisterCastSizeChecker(Eng);
41 RegisterCastToStructChecker(Eng);
42 RegisterFixedAddressChecker(Eng);
43 RegisterPointerArithChecker(Eng);
44 RegisterPointerSubChecker(Eng);
Ted Kremenek8382cf52009-11-13 18:46:29 +000045}