clang  6.0.0svn
Namespaces | Macros | Functions
IteratorChecker.cpp File Reference
#include "ClangSACheckers.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
#include "clang/StaticAnalyzer/Core/Checker.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
Include dependency graph for IteratorChecker.cpp:

Go to the source code of this file.

Namespaces

 IteratorComparison
 

Macros

#define REGISTER_CHECKER(name)
 

Functions

 REGISTER_MAP_WITH_PROGRAMSTATE (IteratorRegionMap, const MemRegion *, IteratorPosition) REGISTER_MAP_WITH_PROGRAMSTATE(IteratorComparisonMap
 
bool IteratorComparison::isIteratorType (const QualType &Type)
 
bool IteratorComparison::isIterator (const CXXRecordDecl *CRD)
 
bool IteratorComparison::isEndCall (const FunctionDecl *Func)
 
bool IteratorComparison::isSimpleComparisonOperator (OverloadedOperatorKind OK)
 
bool IteratorComparison::isDereferenceOperator (OverloadedOperatorKind OK)
 
BinaryOperator::Opcode IteratorComparison::getOpcode (const SymExpr *SE)
 
const RegionOrSymbol IteratorComparison::getRegionOrSymbol (const SVal &Val)
 
const ProgramStateRef IteratorComparison::processComparison (ProgramStateRef State, RegionOrSymbol LVal, RegionOrSymbol RVal, bool Equal)
 
const ProgramStateRef IteratorComparison::saveComparison (ProgramStateRef State, const SymExpr *Condition, const SVal &LVal, const SVal &RVal, bool Eq)
 
const IteratorComparison * IteratorComparison::loadComparison (ProgramStateRef State, const SymExpr *Condition)
 
SymbolRef IteratorComparison::getContainerEnd (ProgramStateRef State, const MemRegion *Cont)
 
ProgramStateRef IteratorComparison::createContainerEnd (ProgramStateRef State, const MemRegion *Cont, const SymbolRef Sym)
 
const IteratorPosition * IteratorComparison::getIteratorPosition (ProgramStateRef State, const SVal &Val)
 
const IteratorPosition * IteratorComparison::getIteratorPosition (ProgramStateRef State, RegionOrSymbol RegOrSym)
 
ProgramStateRef IteratorComparison::setIteratorPosition (ProgramStateRef State, const SVal &Val, const IteratorPosition &Pos)
 
ProgramStateRef IteratorComparison::setIteratorPosition (ProgramStateRef State, RegionOrSymbol RegOrSym, const IteratorPosition &Pos)
 
ProgramStateRef IteratorComparison::removeIteratorPosition (ProgramStateRef State, const SVal &Val)
 
ProgramStateRef IteratorComparison::adjustIteratorPosition (ProgramStateRef State, RegionOrSymbol RegOrSym, const IteratorPosition &Pos, bool Equal)
 
ProgramStateRef IteratorComparison::relateIteratorPositions (ProgramStateRef State, const IteratorPosition &Pos1, const IteratorPosition &Pos2, bool Equal)
 
const ContainerData * IteratorComparison::getContainerData (ProgramStateRef State, const MemRegion *Cont)
 
ProgramStateRef IteratorComparison::setContainerData (ProgramStateRef State, const MemRegion *Cont, const ContainerData &CData)
 
bool IteratorComparison::isOutOfRange (ProgramStateRef State, const IteratorPosition &Pos)
 

Macro Definition Documentation

◆ REGISTER_CHECKER

#define REGISTER_CHECKER (   name)
Value:
void ento::register##name(CheckerManager &Mgr) { \
auto *checker = Mgr.registerChecker<IteratorChecker>(); \
checker->ChecksEnabled[IteratorChecker::CK_##name] = true; \
checker->CheckNames[IteratorChecker::CK_##name] = \
Mgr.getCurrentCheckName(); \
}
CHECKER * registerChecker()
Used to register checkers.

Definition at line 825 of file IteratorChecker.cpp.

Function Documentation

◆ REGISTER_MAP_WITH_PROGRAMSTATE()

REGISTER_MAP_WITH_PROGRAMSTATE ( IteratorRegionMap  ,
const MemRegion ,
IteratorPosition   
)