[analyzer] lib/StaticAnalyzer/Checkers/ExprEngineExperimentalChecks.h -> lib/StaticAn...
[clang/stm8.git] / lib / StaticAnalyzer / Checkers / ExprEngineExperimentalChecks.cpp
blob606fb359fedddd0d8103ea51dc4d15825bd29f5a
1 //=-- ExperimentalChecks.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 ExprEngine.
13 //===----------------------------------------------------------------------===//
15 #include "InternalChecks.h"
16 #include "ExperimentalChecks.h"
17 #include "clang/StaticAnalyzer/Checkers/LocalCheckers.h"
19 using namespace clang;
20 using namespace ento;
22 void ento::RegisterExperimentalChecks(ExprEngine &Eng) {
23 // These are checks that never belong as internal checks
24 // within ExprEngine.
25 RegisterCStringChecker(Eng);
26 RegisterChrootChecker(Eng);
27 RegisterMallocChecker(Eng);
28 RegisterPthreadLockChecker(Eng);
29 RegisterStreamChecker(Eng);
30 RegisterUnreachableCodeChecker(Eng);
33 void ento::RegisterExperimentalInternalChecks(ExprEngine &Eng) {
34 // These are internal checks that should eventually migrate to
35 // RegisterInternalChecks() once they have been further tested.
37 // Note that this must be registered after ReturnStackAddresEngsChecker.
38 RegisterReturnPointerRangeChecker(Eng);
40 RegisterArrayBoundChecker(Eng);
41 RegisterCastSizeChecker(Eng);
42 RegisterCastToStructChecker(Eng);
43 RegisterFixedAddressChecker(Eng);
44 RegisterPointerArithChecker(Eng);
45 RegisterPointerSubChecker(Eng);