diff options
Diffstat (limited to 'include/clang/StaticAnalyzer/Checkers')
3 files changed, 124 insertions, 0 deletions
diff --git a/include/clang/StaticAnalyzer/Checkers/CheckerBase.td b/include/clang/StaticAnalyzer/Checkers/CheckerBase.td new file mode 100644 index 0000000..e452ccf --- /dev/null +++ b/include/clang/StaticAnalyzer/Checkers/CheckerBase.td @@ -0,0 +1,38 @@ +//===--- CheckerBase.td - Checker TableGen classes ------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the TableGen core definitions for checkers +// +//===----------------------------------------------------------------------===// + +class Package<string name> { + string PackageName = name; + bit Hidden = 0; + Package ParentPackage; +} +class InPackage<Package P> { Package ParentPackage = P; } + +class CheckerGroup<string name> { + string GroupName = name; +} +class InGroup<CheckerGroup G> { CheckerGroup Group = G; } + +// All checkers are an indirect subclass of this. +class Checker<string name = ""> { + string CheckerName = name; + string DescFile; + string HelpText; + bit Hidden = 0; + Package ParentPackage; + CheckerGroup Group; +} + +class DescFile<string filename> { string DescFile = filename; } +class HelpText<string text> { string HelpText = text; } +class Hidden { bit Hidden = 1; } diff --git a/include/clang/StaticAnalyzer/Checkers/DereferenceChecker.h b/include/clang/StaticAnalyzer/Checkers/DereferenceChecker.h new file mode 100644 index 0000000..f9cce9c --- /dev/null +++ b/include/clang/StaticAnalyzer/Checkers/DereferenceChecker.h @@ -0,0 +1,35 @@ +//== NullDerefChecker.h - Null dereference checker --------------*- C++ -*--==// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This defines NullDerefChecker and UndefDerefChecker, two builtin checks +// in ExprEngine that check for null and undefined pointers at loads +// and stores. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_GR_DEREFCHECKER +#define LLVM_CLANG_GR_DEREFCHECKER + +#include <utility> + +namespace clang { + +namespace ento { + +class ExprEngine; +class ExplodedNode; + +std::pair<ExplodedNode * const *, ExplodedNode * const *> +GetImplicitNullDereferences(ExprEngine &Eng); + +} // end GR namespace + +} // end clang namespace + +#endif diff --git a/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h b/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h new file mode 100644 index 0000000..42feb78 --- /dev/null +++ b/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h @@ -0,0 +1,51 @@ +//==- LocalCheckers.h - Intra-Procedural+Flow-Sensitive Checkers -*- C++ -*-==// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the interface to call a set of intra-procedural (local) +// checkers that use flow/path-sensitive analyses to find bugs. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_GR_LOCALCHECKERS_H +#define LLVM_CLANG_GR_LOCALCHECKERS_H + +namespace clang { + +class CFG; +class Decl; +class Diagnostic; +class ASTContext; +class LangOptions; +class ParentMap; +class LiveVariables; +class ObjCImplementationDecl; +class LangOptions; +class TranslationUnitDecl; + +namespace ento { + +class PathDiagnosticClient; +class TransferFuncs; +class BugType; +class BugReporter; +class ExprEngine; + +TransferFuncs* MakeCFRefCountTF(ASTContext& Ctx, bool GCEnabled, + const LangOptions& lopts); + +void RegisterExperimentalChecks(ExprEngine &Eng); +void RegisterExperimentalInternalChecks(ExprEngine &Eng); + +void RegisterCallInliner(ExprEngine &Eng); + +} // end GR namespace + +} // end namespace clang + +#endif |