clang 10.0.0git

Namespaces | Classes | Typedefs | Enumerations | Functions
clang::ento Namespace Reference

## Namespaces
| allocation_state
| categories
| check
| cocoa
| coreFoundation
| eval
| iterator
| loc
| move
| mpi
| nonloc
| retaincountchecker
| summMgr
| taint

## Classes
class | AllocaRegion
| AllocaRegion - A region that represents an untyped blob of bytes created by a call to 'alloca'. More...
class | AnalysisAction
class | AnalysisASTConsumer
class | AnalysisManager
class | AnyFunctionCall
| Represents a call to any sort of function that might have a FunctionDecl. More...
class | APSIntType
| A record of the "type" of an APSInt, used for conversions. More...
class | ArgEffect
| An ArgEffect summarizes the retain count behavior on an argument or receiver to a function or method. More...
class | BasicBugReport
class | BasicValueFactory
class | BinarySymExpr
| Represents a symbolic expression involving a binary operator. More...
class | BlockCodeRegion
| BlockCodeRegion - A region that represents code texts of blocks (closures). More...
class | BlockCounter
| An abstract data type used to count the number of times a given block has been visited along a path analyzed by CoreEngine. More...
class | BlockDataRegion
| BlockDataRegion - A region that represents a block instance. More...
class | BranchNodeBuilder
| BranchNodeBuilder is responsible for constructing the nodes corresponding to the two branches of the if statement - true and false. More...
class | BugReport
| This class provides an interface through which checkers can create individual bug reports. More...
class | BugReportEquivClass
class | BugReporter
| BugReporter is a utility class for generating PathDiagnostics for analysis. More...
class | BugReporterContext
class | BugReporterData
class | BugType
class | BuiltinBug
class | CallEvent
| Represents an abstract call to a function or method along a particular path. More...
class | CallEventRef
class | Checker
class | Checker< CHECK1 >
class | CheckerBase
class | CheckerContext
class | CheckerDocumentation
| This checker documents the callback functions checkers can use to implement the custom handling of the specific events during path exploration as well as reporting bugs. More...
class | CheckerFn
class | CheckerFn< RET(Ps...)>
class | CheckerManager
class | CheckerNameRef
| This wrapper is used to ensure that only StringRefs originating from the CheckerRegistry are used as check names. More...
class | CheckerProgramPointTag
| Tag that can use a checker name as a message provider (see SimpleProgramPointTag). More...
class | CheckerRegistry
| Manages a set of available checkers for running a static analysis. More...
class | CodeSpaceRegion
| CodeSpaceRegion - The memory space that holds the executable code of functions and blocks. More...
class | CodeTextRegion
class | CompoundLiteralRegion
| CompoundLiteralRegion - A memory region representing a compound literal. More...
class | CompoundValData
class | ConditionTruthVal
class | ConstraintManager
class | ConstraintRange
class | CoreEngine
| CoreEngine - Implements the core logic of the graph-reachability analysis. More...
class | CXXBaseObjectRegion
class | CXXDerivedObjectRegion
class | CXXTempObjectRegion
class | CXXThisRegion
| CXXThisRegion - Represents the region for the implicit 'this' parameter in a call to a C++ method. More...
class | DeclRegion
struct | DefaultBool
| A helper class which wraps a boolean value set to false by default. More...
class | DefinedOrUnknownSVal
class | DefinedSVal
class | DynamicCastInfo
class | DynamicTypeInfo
| Stores the currently inferred strictest bound on the runtime type of a region in a given state along the analysis path. More...
class | ElementRegion
| ElementRegion is used to represent both array elements and casts. More...
class | Environment
| An immutable map from EnvironemntEntries to SVals. More...
class | EnvironmentEntry
| An entry in the environment consists of a Stmt and an LocationContext. More...
class | EnvironmentManager
class | EventDispatcher
class | ExplodedGraph
class | ExplodedNode
class | ExplodedNodeSet
class | ExprEngine
class | FieldChainInfo
| Represents a field chain. More...
class | FieldNode
| A lightweight polymorphic wrapper around FieldRegion *. More...
class | FieldRegion
class | FindUninitializedFields
| Searches for and stores uninitialized fields in a non-union object. More...
class | FullSValVisitor
| FullSValVisitor - a convenient mixed visitor for all three: SVal, SymExpr and MemRegion subclasses. More...
class | FunctionCodeRegion
| FunctionCodeRegion - A region that represents code texts of function. More...
class | FunctionSummariesTy
class | GlobalImmutableSpaceRegion
| The region containing globals which are considered not to be modified or point to data which could be modified as a result of a function call (system or internal). More...
class | GlobalInternalSpaceRegion
| The region containing globals which can be modified by calls to "internally" defined functions - (for now just) functions other then system calls. More...
class | GlobalsSpaceRegion
class | GlobalSystemSpaceRegion
| The region containing globals which are defined in system/external headers and are considered modifiable by system calls (ex: errno). More...
class | HeapSpaceRegion
struct | ImplicitNullDerefEvent
| We dereferenced a location that may be null. More...
class | IndirectGotoNodeBuilder
class | IntSymExpr
| Represents a symbolic expression like 3 - 'x'. More...
class | KnownSVal
| Represents an SVal that is guaranteed to not be UnknownVal. More...
class | LazyCompoundValData
class | Loc
class | MemRegion
| MemRegion - The root abstract class for all memory regions. More...
class | MemRegionManager
class | MemRegionVisitor
| MemRegionVisitor - this class implements a simple visitor for MemRegion subclasses. More...
class | MemSpaceRegion
| MemSpaceRegion - A memory region that represents a "memory space"; for example, the set of global variables, the stack frame, etc. More...
class | ModelConsumer
| ASTConsumer to consume model files' AST. More...
class | ModelInjector
class | NodeBuilder
| This is the simplest builder which generates nodes in the ExplodedGraph. More...
struct | NodeBuilderContext
class | NodeBuilderWithSinks
| This node builder keeps track of the generated sink nodes. More...
class | NonLoc
class | NonStaticGlobalSpaceRegion
| The region for all the non-static global variables. More...
class | NoteTag
| The tag upon which the TagVisitor reacts. More...
class | ObjCIvarRegion
class | ObjCStringRegion
| The region associated with an ObjCStringLiteral. More...
class | ObjCSummaryKey
| A key identifying a summary. More...
class | ParseModelFileAction
| Frontend action to parse model files. More...
class | PathDiagnostic
| PathDiagnostic - PathDiagnostic objects represent a single path-sensitive diagnostic. More...
class | PathDiagnosticCallPiece
class | PathDiagnosticConsumer
class | PathDiagnosticControlFlowPiece
class | PathDiagnosticEventPiece
class | PathDiagnosticLocation
class | PathDiagnosticLocationPair
class | PathDiagnosticMacroPiece
class | PathDiagnosticNotePiece
class | PathDiagnosticPiece
class | PathDiagnosticPopUpPiece
class | PathDiagnosticRange
class | PathDiagnosticSpotPiece
class | PathPieces
class | PathSensitiveBugReport
class | PathSensitiveBugReporter
| GRBugReporter is used for generating path-sensitive reports. More...
class | PointerToMemberData
class | PrettyStackTraceLocationContext
| While alive, includes the current analysis stack in a crash trace. More...
class | ProgramState
| ProgramState - This class encapsulates: More...
class | ProgramStateManager
struct | ProgramStatePartialTrait
struct | ProgramStatePartialTrait< bool >
struct | ProgramStatePartialTrait< const void * >
struct | ProgramStatePartialTrait< llvm::ImmutableList< T > >
struct | ProgramStatePartialTrait< llvm::ImmutableMap< Key, Data, Info > >
struct | ProgramStatePartialTrait< llvm::ImmutableSet< Key, Info > >
struct | ProgramStatePartialTrait< unsigned >
struct | ProgramStatePartialTrait< void * >
struct | ProgramStateTrait
struct | ProgramStateTrait< ConstraintRange >
struct | ProgramStateTrait< iterator::ContainerMap >
struct | ProgramStateTrait< iterator::IteratorRegionMap >
struct | ProgramStateTrait< iterator::IteratorSymbolMap >
struct | ProgramStateTrait< mpi::RequestMap >
struct | ProgramStateTrait< ReplayWithoutInlining >
class | Range
| A Range represents the closed range [from, to]. More...
class | RangedConstraintManager
class | RangeSet
| RangeSet contains a set of ranges. More...
class | RangeTrait
class | RegionAndSymbolInvalidationTraits
| Information about invalidation for a particular region/symbol. More...
class | RegionOffset
| Represent a region's offset within the top level base region. More...
class | RegionRawOffset
struct | ReplayWithoutInlining
| Traits for storing the call processing policy inside GDM. More...
class | RetEffect
| RetEffect summarizes a call's retain/release behavior with respect to its return value. More...
class | RuntimeDefinition
| Defines the runtime definition of the called function. More...
class | ScanReachableSymbols
| A utility class that visits the reachable symbols using a custom SymbolVisitor. More...
class | SimpleConstraintManager
class | SimpleFunctionCall
| Represents a C function or static C++ member function call. More...
class | SMTConstraintManager
class | SMTConv
class | StackArgumentsSpaceRegion
class | StackHintGenerator
| Interface for classes constructing Stack hints. More...
class | StackHintGeneratorForSymbol
| Constructs a Stack hint for the given symbol. More...
class | StackLocalsSpaceRegion
class | StackSpaceRegion
class | StaticGlobalSpaceRegion
| The region of the static variables within the current CodeTextRegion scope. More...
class | StmtNodeBuilder
| This builder class is useful for generating nodes that resulted from visiting a statement. More...
class | StoreManager
class | StoreRef
class | StringRegion
| StringRegion - Region associated with a StringLiteral. More...
class | SubEngine
class | SubRegion
| SubRegion - A region that subsets another larger region. More...
class | SummaryManager
class | SummaryManagerImpl
class | SVal
| SVal - This represents a symbolic expression, which can be either an L-value or an R-value. More...
class | SValBuilder
class | SValExplainer
class | SValVisitor
| SValVisitor - this class implements a simple visitor for SVal subclasses. More...
class | SwitchNodeBuilder
class | SymbolCast
| Represents a cast expression. More...
class | SymbolConjured
| A symbol representing the result of an expression in the case when we do not know anything about what the expression is. More...
class | SymbolData
| A symbol representing data which can be stored in a memory location (region). More...
class | SymbolDerived
| A symbol representing the value of a MemRegion whose parent region has symbolic value. More...
class | SymbolExtent
| SymbolExtent - Represents the extent (size in bytes) of a bounded region. More...
class | SymbolicRegion
| SymbolicRegion - A special, "non-concrete" region. More...
class | SymbolManager
class | SymbolMetadata
| SymbolMetadata - Represents path-dependent metadata about a specific region. More...
class | SymbolReaper
| A class responsible for cleaning up unused symbols. More...
class | SymbolRegionValue
| A symbol representing the value stored at a MemRegion. More...
class | SymbolVisitor
class | SymExpr
| Symbolic value. More...
class | SymExprVisitor
| SymExprVisitor - this class implements a simple visitor for SymExpr subclasses. More...
class | SymIntExpr
| Represents a symbolic expression like 'x' + 3. More...
class | SymSymExpr
| Represents a symbolic expression like 'x' + 'y'. More...
class | TypedRegion
| TypedRegion - An abstract class representing regions that are typed. More...
class | TypedValueRegion
| TypedValueRegion - An abstract class representing regions having a typed value. More...
class | UndefinedVal
struct | UninitObjCheckerOptions
class | UnknownSpaceRegion
class | UnknownVal
class | VarRegion
class | WorkList
class | WorkListUnit

## Typedefs
using | LocationOrAnalysisDeclContext = llvm::PointerUnion< const LocationContext *, AnalysisDeclContext * >
using | PathDiagnosticPieceRef = std::shared_ptr< PathDiagnosticPiece >
using | FilesToLineNumsMap = std::map< FileID, std::set< unsigned > >
| File IDs mapped to sets of line numbers. More...
using | DiagnosticForConsumerMapTy = llvm::DenseMap< PathDiagnosticConsumer *, std::unique_ptr< PathDiagnostic > >
| A mapping from diagnostic consumers to the diagnostics they should consume. More...
typedef std::vector< PathDiagnosticConsumer * > | PathDiagnosticConsumers
using | InterExplodedGraphMap = llvm::DenseMap< const ExplodedNode *, const ExplodedNode * >
using | SetOfDecls = std::deque< Decl * >
using | SetOfConstDecls = llvm::DenseSet< const Decl * >
typedef std::unique_ptr< ConstraintManager >(* | ConstraintManagerCreator) (ProgramStateManager &, SubEngine *)
typedef std::unique_ptr< StoreManager >(* | StoreManagerCreator) (ProgramStateManager &)
typedef IntrusiveRefCntPtr< const ProgramState > | ProgramStateRef
using | ConstraintRangeTy = llvm::ImmutableMap< SymbolRef, RangeSet >
using | InvalidatedSymbols = llvm::DenseSet< SymbolRef >
using | Store = const void *
| Store - This opaque type encapsulates an immutable mapping from locations to values. More...
using | SymbolRef = const SymExpr *
using | SymbolRefSmallVectorTy = SmallVector< SymbolRef, 2 >
using | SymbolID = unsigned
using | UninitFieldMap = std::map< const FieldRegion *, llvm::SmallString< 50 > >

## Enumerations
enum | ObjKind { ObjKind::CF, ObjKind::ObjC, ObjKind::AnyObj, ObjKind::Generalized, ObjKind::OS }
| Determines the object kind of a tracked object. More...
enum | ArgEffectKind { DoNothing, Autorelease, Dealloc, DecRef, DecRefBridgedTransferred, IncRef, UnretainedOutParameter, RetainedOutParameter, RetainedOutParameterOnZero, RetainedOutParameterOnNonZero, MayEscape, StopTracking, StopTrackingHard, DecRefAndStopTrackingHard }
enum | PointerEscapeKind { PSK_EscapeOnBind, PSK_DirectEscapeOnCall, PSK_IndirectEscapeOnCall, PSK_EscapeOutParameters, PSK_EscapeOther }
| Describes the different reasons a pointer escapes during analysis. More...
enum | ObjCMessageVisitKind { ObjCMessageVisitKind::Pre, ObjCMessageVisitKind::Post, ObjCMessageVisitKind::MessageNil }
enum | CallEventKind { CE_Function, CE_CXXMember, CE_CXXMemberOperator, CE_CXXDestructor, CE_BEG_CXX_INSTANCE_CALLS = CE_CXXMember, CE_END_CXX_INSTANCE_CALLS = CE_CXXDestructor, CE_CXXConstructor, CE_CXXAllocator, CE_BEG_FUNCTION_CALLS = CE_Function, CE_END_FUNCTION_CALLS = CE_CXXAllocator, CE_Block, CE_ObjCMessage }
enum | Nullability : char { Nullability::Contradicted, Nullability::Nullable, Nullability::Unspecified, Nullability::Nonnull }

## Functions
void | RegisterCallInliner (ExprEngine &Eng)
raw_ostream & | operator<< (raw_ostream &Out, const CheckerBase &Checker)
| Dump checker name to stream. More...
bool | containsMacro (const Stmt *S)
bool | containsEnum (const Stmt *S)
bool | containsStaticLocal (const Stmt *S)
bool | containsBuiltinOffsetOf (const Stmt *S)
template<class T >
bool | containsStmt (const Stmt *S)
std::pair< const clang::VarDecl *, const clang::Expr * > | parseAssignment (const Stmt *S)
Nullability | getNullabilityAnnotation (QualType Type)
| Get nullability annotation for a given type. More...
std::unique_ptr< ConstraintManager > | CreateRangeConstraintManager (ProgramStateManager &statemgr, SubEngine *subengine)
std::unique_ptr< ConstraintManager > | CreateZ3ConstraintManager (ProgramStateManager &statemgr, SubEngine *subengine)
DynamicTypeInfo | getDynamicTypeInfo (ProgramStateRef State, const MemRegion *MR)
| Get dynamic type information for the region `MR`. More...
const DynamicTypeInfo * | getRawDynamicTypeInfo (ProgramStateRef State, const MemRegion *MR)
| Get raw dynamic type information for the region `MR`. More...
const DynamicCastInfo * | getDynamicCastInfo (ProgramStateRef State, const MemRegion *MR, QualType CastFromTy, QualType CastToTy)
| Get dynamic cast information from `CastFromTy` to `CastToTy` of `MR`. More...
ProgramStateRef | setDynamicTypeInfo (ProgramStateRef State, const MemRegion *MR, DynamicTypeInfo NewTy)
| Set dynamic type information of the region; return the new state. More...
ProgramStateRef | setDynamicTypeInfo (ProgramStateRef State, const MemRegion *MR, QualType NewTy, bool CanBeSubClassed=true)
| Set dynamic type information of the region; return the new state. More...
ProgramStateRef | setDynamicTypeAndCastInfo (ProgramStateRef State, const MemRegion *MR, QualType CastFromTy, QualType CastToTy, bool IsCastSucceeds)
| Set dynamic type and cast information of the region; return the new state. More...
ProgramStateRef | removeDeadTypes (ProgramStateRef State, SymbolReaper &SR)
| Removes the dead type informations from `State`. More...
ProgramStateRef | removeDeadCasts (ProgramStateRef State, SymbolReaper &SR)
| Removes the dead cast informations from `State`. More...
void | printDynamicTypeInfoJson (raw_ostream &Out, ProgramStateRef State, const char *NL="\, unsigned int Space=0, bool IsDot=false)
bool | isUnrolledState (ProgramStateRef State)
| Returns if the given State indicates that is inside a completely unrolled loop. More...
ProgramStateRef | updateLoopStack (const Stmt *LoopStmt, ASTContext &ASTCtx, ExplodedNode *Pred, unsigned maxVisitOnPath)
| Updates the stack of loops contained by the ProgramState. More...
ProgramStateRef | processLoopEnd (const Stmt *LoopStmt, ProgramStateRef State)
| Updates the given ProgramState. More...
ProgramStateRef | getWidenedLoopState (ProgramStateRef PrevState, const LocationContext *LCtx, unsigned BlockCount, const Stmt *LoopStmt)
| Get the states that result from widening the loop. More...
raw_ostream & | operator<< (raw_ostream &os, const MemRegion *R)
void | ProgramStateRetain (const ProgramState *state)
| Increments the number of times this state is referenced. More...
void | ProgramStateRelease (const ProgramState *state)
| Decrement the number of times this state is referenced. More...
std::unique_ptr< StoreManager > | CreateRegionStoreManager (ProgramStateManager &StMgr)
std::unique_ptr< StoreManager > | CreateFieldsOnlyRegionStoreManager (ProgramStateManager &StMgr)
SValBuilder * | createSimpleSValBuilder (llvm::BumpPtrAllocator &alloc, ASTContext &context, ProgramStateManager &stateMgr)
raw_ostream & | operator<< (raw_ostream &os, clang::ento::SVal V)
raw_ostream & | operator<< (raw_ostream &os, const clang::ento::SymExpr *SE)
std::unique_ptr< AnalysisASTConsumer > | CreateAnalysisConsumer (CompilerInstance &CI)
| CreateAnalysisConsumer - Creates an ASTConsumer to run various code analysis passes. More...
std::unique_ptr< CheckerManager > | createCheckerManager (ASTContext &context, AnalyzerOptions &opts, ArrayRef< std::string > plugins, ArrayRef< std::function< void(CheckerRegistry &)>> checkerRegistrationFns, DiagnosticsEngine &diags)
void | printCheckerHelp (raw_ostream &OS, ArrayRef< std::string > plugins, AnalyzerOptions &opts, DiagnosticsEngine &diags, const LangOptions &LangOpts)
void | printEnabledCheckerList (raw_ostream &OS, ArrayRef< std::string > plugins, AnalyzerOptions &opts, DiagnosticsEngine &diags, const LangOptions &LangOpts)
void | printAnalyzerConfigList (raw_ostream &OS)
void | printCheckerConfigList (raw_ostream &OS, ArrayRef< std::string > plugins, AnalyzerOptions &opts, DiagnosticsEngine &diags, const LangOptions &LangOpts)
void | registerInnerPointerCheckerAux (CheckerManager &Mgr)
| Register the part of MallocChecker connected to InnerPointerChecker. More...
std::string | getVariableName (const FieldDecl *Field)
| Returns with Field's name. More...
bool | isPrimitiveType (const QualType &T)
| Returns true if T is a primitive type. More...
bool | isDereferencableType (const QualType &T)
template<class T , class Checker >
llvm::Optional< T > | getConfiguration (CheckerManager &Mgr, Checker *Chk, StringRef Option, StringRef ConfigFile)
| Read the given file from the filesystem and parse it as a yaml file. More...
template<typename MapTy >
ProgramStateRef | removeDead (ProgramStateRef State, const MapTy &Map, SymbolReaper &SR)
static void | printDynamicTypesJson (raw_ostream &Out, ProgramStateRef State, const char *NL, unsigned int Space, bool IsDot)
static void | printDynamicCastsJson (raw_ostream &Out, ProgramStateRef State, const char *NL, unsigned int Space, bool IsDot)
static bool | isLoopStmt (const Stmt *S)
static internal::Matcher< Stmt > | simpleCondition (StringRef BindName)
static internal::Matcher< Stmt > | changeIntBoundNode (internal::Matcher< Decl > VarNodeMatcher)
static internal::Matcher< Stmt > | callByRef (internal::Matcher< Decl > VarNodeMatcher)
static internal::Matcher< Stmt > | assignedToRef (internal::Matcher< Decl > VarNodeMatcher)
static internal::Matcher< Stmt > | getAddrTo (internal::Matcher< Decl > VarNodeMatcher)
static internal::Matcher< Stmt > | hasSuspiciousStmt (StringRef NodeName)
static internal::Matcher< Stmt > | forLoopMatcher ()
static bool | isPossiblyEscaped (const VarDecl *VD, ExplodedNode *N)
bool | shouldCompletelyUnroll (const Stmt *LoopStmt, ASTContext &ASTCtx, ExplodedNode *Pred, unsigned &maxStep)
bool | madeNewBranch (ExplodedNode *N, const Stmt *LoopStmt)

## Typedef Documentation

## ◆ ConstraintManagerCreator

typedef std::unique_ptr<ConstraintManager>(* clang::ento::ConstraintManagerCreator) (ProgramStateManager &, SubEngine *)

Definition at line 41 of file ProgramState.h.

## ◆ ConstraintRangeTy

using clang::ento::ConstraintRangeTy = typedef llvm::ImmutableMap<SymbolRef, RangeSet>

Definition at line 129 of file RangedConstraintManager.h.

## ◆ DiagnosticForConsumerMapTy

using clang::ento::DiagnosticForConsumerMapTy = typedef llvm::DenseMap<PathDiagnosticConsumer *, std::unique_ptr<PathDiagnostic> >

A mapping from diagnostic consumers to the diagnostics they should consume.

Definition at line 71 of file BugReporter.h.

## ◆ FilesToLineNumsMap

using clang::ento::FilesToLineNumsMap = typedef std::map<FileID, std::set<unsigned> >

File IDs mapped to sets of line numbers.

Definition at line 722 of file PathDiagnostic.h.

## ◆ InterExplodedGraphMap

using clang::ento::InterExplodedGraphMap = typedef llvm::DenseMap<const ExplodedNode *, const ExplodedNode *>

Definition at line 302 of file ExplodedGraph.h.

## ◆ InvalidatedSymbols

using clang::ento::InvalidatedSymbols = typedef llvm::DenseSet<SymbolRef>

Definition at line 51 of file Store.h.

## ◆ LocationOrAnalysisDeclContext

using clang::ento::LocationOrAnalysisDeclContext = typedef llvm::PointerUnion<const LocationContext *, AnalysisDeclContext *>

Definition at line 155 of file PathDiagnostic.h.

## ◆ PathDiagnosticConsumers

typedef std::vector<PathDiagnosticConsumer*> clang::ento::PathDiagnosticConsumers

Definition at line 29 of file PathDiagnosticConsumers.h.

## ◆ PathDiagnosticPieceRef

using clang::ento::PathDiagnosticPieceRef = typedef std::shared_ptr<PathDiagnosticPiece>

Definition at line 454 of file PathDiagnostic.h.

## ◆ ProgramStateRef

typedef IntrusiveRefCntPtr<const ProgramState> clang::ento::ProgramStateRef

Definition at line 37 of file ProgramState_Fwd.h.

## ◆ SetOfConstDecls

using clang::ento::SetOfConstDecls = typedef llvm::DenseSet<const Decl *>

Definition at line 31 of file FunctionSummary.h.

## ◆ SetOfDecls

using clang::ento::SetOfDecls = typedef std::deque<Decl *>

Definition at line 30 of file FunctionSummary.h.

## ◆ Store

using clang::ento::Store = typedef const void *

Store - This opaque type encapsulates an immutable mapping from locations to values.

At a high-level, it represents the symbolic memory model. Different subclasses of StoreManager may choose different types to represent the locations and values.

Definition at line 27 of file StoreRef.h.

## ◆ StoreManagerCreator

typedef std::unique_ptr<StoreManager>(* clang::ento::StoreManagerCreator) (ProgramStateManager &)

Definition at line 43 of file ProgramState.h.

## ◆ SymbolID

using clang::ento::SymbolID = typedef unsigned

Definition at line 112 of file SymExpr.h.

## ◆ SymbolRef

using clang::ento::SymbolRef = typedef const SymExpr *

Definition at line 110 of file SymExpr.h.

## ◆ SymbolRefSmallVectorTy

using clang::ento::SymbolRefSmallVectorTy = typedef SmallVector<SymbolRef, 2>

Definition at line 111 of file SymExpr.h.

## ◆ UninitFieldMap

using clang::ento::UninitFieldMap = typedef std::map<const FieldRegion *, llvm::SmallString<50> >

Definition at line 194 of file UninitializedObject.h.

## Enumeration Type Documentation

## ◆ ArgEffectKind

enum clang::ento::ArgEffectKind

Enumerator
DoNothing | There is no effect.
Autorelease | The argument is treated as if an -autorelease message had been sent to the referenced object.
Dealloc | The argument is treated as if the referenced object was deallocated.
DecRef | The argument has its reference count decreased by 1.
DecRefBridgedTransferred | The argument has its reference count decreased by 1 to model a transferred bridge cast under ARC.
IncRef | The argument has its reference count increased by 1.
UnretainedOutParameter | The argument is a pointer to a retain-counted object; on exit, the new value of the pointer is a +0 value.
RetainedOutParameter | The argument is a pointer to a retain-counted object; on exit, the new value of the pointer is a +1 value.
RetainedOutParameterOnZero | The argument is a pointer to a retain-counted object; on exit, the new value of the pointer is a +1 value iff the return code is zero.
RetainedOutParameterOnNonZero | The argument is a pointer to a retain-counted object; on exit, the new value of the pointer is a +1 value iff the return code is non-zero.
MayEscape | The argument is treated as potentially escaping, meaning that even when its reference count hits 0 it should be treated as still possibly being alive as someone else may be holding onto the object.
StopTracking | All typestate tracking of the object ceases. This is usually employed when the effect of the call is completely unknown.
StopTrackingHard | All typestate tracking of the object ceases. Unlike StopTracking, this is also enforced when the method body is inlined. In some cases, we obtain a better summary for this checker by looking at the call site than by inlining the function. Signifies that we should stop tracking the symbol even if the function is inlined.
DecRefAndStopTrackingHard | Performs the combined functionality of DecRef and StopTrackingHard. The models the effect that the called function decrements the reference count of the argument and all typestate tracking on that argument should cease.

Definition at line 53 of file RetainSummaryManager.h.

## ◆ CallEventKind

enum clang::ento::CallEventKind

Enumerator
CE_Function |
CE_CXXMember |
CE_CXXMemberOperator |
CE_CXXDestructor |
CE_BEG_CXX_INSTANCE_CALLS |
CE_END_CXX_INSTANCE_CALLS |
CE_CXXConstructor |
CE_CXXAllocator |
CE_BEG_FUNCTION_CALLS |
CE_END_FUNCTION_CALLS |
CE_Block |
CE_ObjCMessage |

Definition at line 58 of file CallEvent.h.

## ◆ Nullability

enum clang::ento::Nullability : char
| strong

Enumerator
Contradicted |
Nullable |
Unspecified |
Nonnull |

Definition at line 52 of file CheckerHelpers.h.

## ◆ ObjCMessageVisitKind

enum clang::ento::ObjCMessageVisitKind
| strong

Enumerator
Pre |
Post |
MessageNil |

Definition at line 117 of file CheckerManager.h.

## ◆ ObjKind

enum clang::ento::ObjKind
| strong

Determines the object kind of a tracked object.

Enumerator
CF | Indicates that the tracked object is a CF object.
ObjC | Indicates that the tracked object is an Objective-C object.
AnyObj | Indicates that the tracked object could be a CF or Objective-C object.
Generalized | Indicates that the tracked object is a generalized object.
OS | Indicates that the tracking object is a descendant of a referenced-counted OSObject, used in the Darwin kernel.

Definition at line 35 of file RetainSummaryManager.h.

## ◆ PointerEscapeKind

enum clang::ento::PointerEscapeKind

Describes the different reasons a pointer escapes during analysis.

Enumerator
PSK_EscapeOnBind | A pointer escapes due to binding its value to a location that the analyzer cannot track.
PSK_DirectEscapeOnCall | The pointer has been passed to a function call directly.
PSK_IndirectEscapeOnCall | The pointer has been passed to a function indirectly. For example, the pointer is accessible through an argument to a function.
PSK_EscapeOutParameters | Escape for a new symbol that was generated into a region that the analyzer cannot follow during a conservative call.
PSK_EscapeOther | The reason for pointer escape is unknown. For example, a region containing this pointer is invalidated.

Definition at line 75 of file CheckerManager.h.

## Function Documentation

## ◆ assignedToRef()

static internal::Matcher<Stmt> clang::ento::assignedToRef | ( | internal::Matcher< Decl > | VarNodeMatcher | ) |
| static

Definition at line 112 of file LoopUnrolling.cpp.

References clang::ast_matchers::allOf, clang::ast_matchers::anyOf, clang::ast_matchers::declRefExpr, clang::ast_matchers::declStmt, clang::ast_matchers::has, clang::ast_matchers::hasDescendant, clang::ast_matchers::initListExpr, clang::ast_matchers::referenceType, and clang::ast_matchers::varDecl.

Referenced by hasSuspiciousStmt().

## ◆ callByRef()

static internal::Matcher<Stmt> clang::ento::callByRef | ( | internal::Matcher< Decl > | VarNodeMatcher | ) |
| static

Definition at line 105 of file LoopUnrolling.cpp.

References clang::ast_matchers::callExpr, clang::ast_matchers::declRefExpr, clang::ast_matchers::parmVarDecl, clang::ast_matchers::qualType, clang::ast_matchers::unless, and clang::ast_matchers::varDecl.

Referenced by hasSuspiciousStmt().

## ◆ changeIntBoundNode()

static internal::Matcher<Stmt> clang::ento::changeIntBoundNode | ( | internal::Matcher< Decl > | VarNodeMatcher | ) |
| static

Definition at line 94 of file LoopUnrolling.cpp.

References clang::ast_matchers::anyOf, clang::ast_matchers::binaryOperator, clang::ast_matchers::declRefExpr, clang::ast_matchers::unaryOperator, and clang::ast_matchers::varDecl.

Referenced by hasSuspiciousStmt().

## ◆ containsBuiltinOffsetOf()

bool clang::ento::containsBuiltinOffsetOf | ( | const Stmt * | S | ) |

Definition at line 67 of file CheckerHelpers.cpp.

## ◆ containsEnum()

bool clang::ento::containsEnum | ( | const Stmt * | S | ) |

Definition at line 37 of file CheckerHelpers.cpp.

## ◆ containsMacro()

bool clang::ento::containsMacro | ( | const Stmt * | S | ) |

Definition at line 22 of file CheckerHelpers.cpp.

## ◆ containsStaticLocal()

bool clang::ento::containsStaticLocal | ( | const Stmt * | S | ) |

Definition at line 51 of file CheckerHelpers.cpp.

## ◆ containsStmt()

template<class T >

bool clang::ento::containsStmt | ( | const Stmt * | S | ) |

Definition at line 32 of file CheckerHelpers.h.

## ◆ CreateAnalysisConsumer()

std::unique_ptr< AnalysisASTConsumer > clang::ento::CreateAnalysisConsumer | ( | CompilerInstance & | CI | ) |

CreateAnalysisConsumer - Creates an ASTConsumer to run various code analysis passes.

(The set of analyses run is controlled by command-line options.)

Definition at line 843 of file AnalysisConsumer.cpp.

References clang::CompilerInstance::getAnalyzerOpts(), clang::Preprocessor::getDiagnostics(), clang::CompilerInstance::getFrontendOpts(), clang::CompilerInstance::getPreprocessor(), clang::FrontendOptions::OutputFile, and clang::DiagnosticsEngine::setWarningsAsErrors().

Referenced by clang::ento::AnalysisAction::CreateASTConsumer().

## ◆ createCheckerManager()

std::unique_ptr< CheckerManager > clang::ento::createCheckerManager | ( | ASTContext & | context,
|  | AnalyzerOptions & | opts,
|  | ArrayRef< std::string > | plugins,
|  | ArrayRef< std::function< void(CheckerRegistry &)>> | checkerRegistrationFns,
|  | DiagnosticsEngine & | diags
| ) |  |

Definition at line 27 of file CheckerRegistration.cpp.

## ◆ CreateFieldsOnlyRegionStoreManager()

std::unique_ptr< StoreManager > clang::ento::CreateFieldsOnlyRegionStoreManager | ( | ProgramStateManager & | StMgr | ) |

Definition at line 682 of file RegionStore.cpp.

Referenced by clang::ento::StoreRef::operator=().

## ◆ CreateRangeConstraintManager()

std::unique_ptr< ConstraintManager > clang::ento::CreateRangeConstraintManager | ( | ProgramStateManager & | statemgr,
|  | SubEngine * | subengine
| ) |  |

Definition at line 332 of file RangeConstraintManager.cpp.

References clang::ento::BasicValueFactory::getAPSIntType(), clang::ento::SVal::getAs(), clang::ento::RangeSet::getConcreteValue(), clang::ento::ProgramStateManager::getSValBuilder(), clang::ento::SymExpr::getType(), clang::ento::APSIntType::getZeroValue(), clang::ento::RangeSet::Intersect(), clang::ento::SymbolReaper::isDead(), clang::ento::RangeSet::isEmpty(), clang::BinaryOperator::isEqualityOp(), clang::ento::Loc::isLocType(), clang::BinaryOperator::isRelationalOp(), State, X, and clang::interp::Zero().

## ◆ CreateRegionStoreManager()

std::unique_ptr< StoreManager > clang::ento::CreateRegionStoreManager | ( | ProgramStateManager & | StMgr | ) |

Definition at line 676 of file RegionStore.cpp.

Referenced by clang::ento::StoreRef::operator=().

## ◆ createSimpleSValBuilder()

SValBuilder * clang::ento::createSimpleSValBuilder | ( | llvm::BumpPtrAllocator & | alloc,
|  | ASTContext & | context,
|  | ProgramStateManager & | stateMgr
| ) |  |

Definition at line 58 of file SimpleSValBuilder.cpp.

References clang::ento::SVal::castAs(), clang::ento::SVal::getAs(), and clang::ento::Loc::isLocType().

Referenced by clang::ento::SValBuilder::makeSymbolVal().

## ◆ CreateZ3ConstraintManager()

std::unique_ptr< ConstraintManager > clang::ento::CreateZ3ConstraintManager | ( | ProgramStateManager & | statemgr,
|  | SubEngine * | subengine
| ) |  |

Definition at line 16 of file SMTConstraintManager.cpp.

References clang::ento::ProgramStateManager::getSValBuilder().

## ◆ forLoopMatcher()

static internal::Matcher<Stmt> clang::ento::forLoopMatcher | ( |  | ) |
| static

Definition at line 139 of file LoopUnrolling.cpp.

References clang::ast_matchers::allOf, clang::ast_matchers::anyOf, clang::ast_matchers::binaryOperator, clang::ast_matchers::declRefExpr, clang::ast_matchers::declStmt, clang::ast_matchers::forStmt, hasSuspiciousStmt(), clang::ast_matchers::integerLiteral, simpleCondition(), clang::ast_matchers::unaryOperator, clang::ast_matchers::unless, and clang::ast_matchers::varDecl.

## ◆ getAddrTo()

static internal::Matcher<Stmt> clang::ento::getAddrTo | ( | internal::Matcher< Decl > | VarNodeMatcher | ) |
| static

Definition at line 121 of file LoopUnrolling.cpp.

References clang::ast_matchers::declRefExpr, clang::ast_matchers::hasDeclaration(), and clang::ast_matchers::unaryOperator.

Referenced by hasSuspiciousStmt().

## ◆ getConfiguration()

template<class T , class Checker >

llvm::Optional<T> clang::ento::getConfiguration | ( | CheckerManager & | Mgr,
|  | Checker * | Chk,
|  | StringRef | Option,
|  | StringRef | ConfigFile
| ) |  |

Read the given file from the filesystem and parse it as a yaml file.

The template parameter must have a yaml MappingTraits. Emit diagnostic error in case of any failure.

Definition at line 27 of file Yaml.h.

## ◆ getDynamicCastInfo()

const DynamicCastInfo * clang::ento::getDynamicCastInfo | ( | ProgramStateRef | State,
|  | const MemRegion * | MR,
|  | QualType | CastFromTy,
|  | QualType | CastToTy
| ) |  |

Get dynamic cast information from `CastFromTy` to `CastToTy` of `MR`.

Definition at line 64 of file DynamicType.cpp.

References clang::interp::Cast().

Referenced by addCastTransition(), and addInstanceOfTransition().

## ◆ getDynamicTypeInfo()

DynamicTypeInfo clang::ento::getDynamicTypeInfo | ( | ProgramStateRef | State,
|  | const MemRegion * | MR
| ) |  |

Get dynamic type information for the region `MR`.

Definition at line 40 of file DynamicType.cpp.

References clang::ento::SymExpr::getType(), and clang::ento::MemRegion::StripCasts().

Referenced by clang::CXXInstanceCall::getRuntimeDefinition(), clang::ObjCMethodCall::getRuntimeDefinition(), hasDefinition(), and recordFixedType().

## ◆ getNullabilityAnnotation()

Nullability clang::ento::getNullabilityAnnotation | ( | QualType | Type | ) |

Get nullability annotation for a given type.

Definition at line 101 of file CheckerHelpers.cpp.

References clang::Type::getAs(), Nonnull, Nullable, and Unspecified.

Referenced by checkValueAtLValForInvariantViolation().

## ◆ getRawDynamicTypeInfo()

const DynamicTypeInfo * clang::ento::getRawDynamicTypeInfo | ( | ProgramStateRef | State,
|  | const MemRegion * | MR
| ) |  |

Get raw dynamic type information for the region `MR`.

Definition at line 59 of file DynamicType.cpp.

Referenced by getReturnTypeForMethod().

## ◆ getVariableName()

std::string clang::ento::getVariableName | ( | const FieldDecl * | Field | ) |

Returns with Field's name.

This is a helper function to get the correct name even if Field is a captured lambda variable.

Definition at line 584 of file UninitializedObjectChecker.cpp.

References clang::CXXRecordDecl::captures_begin(), clang::ento::UninitObjCheckerOptions::CheckPointeeInitialization, clang::ento::CheckerManager::getAnalyzerOptions(), clang::FieldDecl::getFieldIndex(), clang::NamedDecl::getName(), clang::FieldDecl::getParent(), clang::ento::UninitObjCheckerOptions::IgnoredRecordsWithFieldPattern, clang::ento::UninitObjCheckerOptions::IgnoreGuardedFields, clang::ento::UninitObjCheckerOptions::IsPedantic, clang::ento::CheckerManager::registerChecker(), clang::ento::CheckerManager::reportInvalidCheckerOptionValue(), and clang::ento::UninitObjCheckerOptions::ShouldConvertNotesToWarnings.

Referenced by clang::ento::FieldNode::isBase().

## ◆ getWidenedLoopState()

ProgramStateRef clang::ento::getWidenedLoopState | ( | ProgramStateRef | PrevState,
|  | const LocationContext * | LCtx,
|  | unsigned | BlockCount,
|  | const Stmt * | LoopStmt
| ) |  |

Get the states that result from widening the loop.

Widen the loop by invalidating anything that might be modified by the loop body in any iteration.

Definition at line 44 of file LoopWidening.cpp.

References clang::LocationContext::getAnalysisDeclContext(), clang::AnalysisDeclContext::getASTContext(), clang::ento::MemRegionManager::getGlobalsRegion(), clang::ento::MemRegionManager::getStackArgumentsRegion(), clang::LocationContext::getStackFrame(), clang::ento::MemRegionManager::getStackLocalsRegion(), clang::ento::RegionAndSymbolInvalidationTraits::setTrait(), and clang::ento::RegionAndSymbolInvalidationTraits::TK_EntireMemSpace.

Referenced by clang::ento::ExprEngine::processCFGBlockEntrance().

## ◆ hasSuspiciousStmt()

static internal::Matcher<Stmt> clang::ento::hasSuspiciousStmt | ( | StringRef | NodeName | ) |
| static

Definition at line 127 of file LoopUnrolling.cpp.

References clang::ast_matchers::anyOf, assignedToRef(), callByRef(), changeIntBoundNode(), getAddrTo(), clang::ast_matchers::gotoStmt, clang::ast_matchers::hasDescendant, clang::ast_matchers::returnStmt, clang::ast_matchers::stmt, and clang::ast_matchers::switchStmt.

Referenced by forLoopMatcher().

## ◆ isDereferencableType()

bool clang::ento::isDereferencableType | ( | const QualType & | T | ) |
| inline

Definition at line 330 of file UninitializedObject.h.

References clang::Type::isAnyPointerType(), and clang::Type::isReferenceType().

Referenced by dereference(), DereferenceInfo::DereferenceInfo(), and clang::ento::FindUninitializedFields::FindUninitializedFields().

## ◆ isLoopStmt()

static bool clang::ento::isLoopStmt | ( | const Stmt * | S | ) |
| static

Definition at line 71 of file LoopUnrolling.cpp.

Referenced by shouldCompletelyUnroll(), and updateLoopStack().

## ◆ isPossiblyEscaped()

static bool clang::ento::isPossiblyEscaped | ( | const VarDecl * | VD,
|  | ExplodedNode * | N
| ) |  |
| static

Definition at line 162 of file LoopUnrolling.cpp.

References clang::VarDecl::hasGlobalStorage(), and clang::ento::ExplodedNode::pred_empty().

## ◆ isPrimitiveType()

bool clang::ento::isPrimitiveType | ( | const QualType & | T | ) |
| inline

Returns true if T is a primitive type.

An object of a primitive type only needs to be analyzed as much as checking whether their value is undefined.

Definition at line 324 of file UninitializedObject.h.

References clang::Type::isAtomicType(), clang::Type::isBuiltinType(), clang::Type::isEnumeralType(), clang::Type::isFunctionType(), clang::Type::isScalarType(), and clang::Type::isVectorType().

Referenced by DereferenceInfo::DereferenceInfo(), and clang::ento::FindUninitializedFields::FindUninitializedFields().

## ◆ isUnrolledState()

bool clang::ento::isUnrolledState | ( | ProgramStateRef | State | ) |

Returns if the given State indicates that is inside a completely unrolled loop.

Definition at line 288 of file LoopUnrolling.cpp.

Referenced by clang::ento::ExprEngine::processCFGBlockEntrance().

## ◆ madeNewBranch()

bool clang::ento::madeNewBranch | ( | ExplodedNode * | N,
|  | const Stmt * | LoopStmt
| ) |  |

Definition at line 231 of file LoopUnrolling.cpp.

Referenced by updateLoopStack().

## ◆ operator<<() [1/4]

raw_ostream& clang::ento::operator<< | ( | raw_ostream & | os,
|  | const clang::ento::SymExpr * | SE
| ) |  |
| inline

Definition at line 104 of file SymExpr.h.

References clang::ento::SymExpr::dumpToStream().

## ◆ operator<<() [2/4]

raw_ostream& clang::ento::operator<< | ( | raw_ostream & | os,
|  | clang::ento::SVal | V
| ) |  |
| inline

Definition at line 212 of file SVals.h.

References clang::ento::SVal::dumpToStream().

## ◆ operator<<() [3/4]

raw_ostream & clang::ento::operator<< | ( | raw_ostream & | Out,
|  | const CheckerBase & | Checker
| ) |  |

Dump checker name to stream.

Definition at line 35 of file Checker.cpp.

References clang::ento::CheckerBase::getCheckerName(), and clang::ento::CheckerNameRef::getName().

Referenced by clang::ento::CheckerBase::printState().

## ◆ operator<<() [4/4]

raw_ostream& clang::ento::operator<< | ( | raw_ostream & | os,
|  | const MemRegion * | R
| ) |  |
| inline

Definition at line 1485 of file MemRegion.h.

References clang::ento::MemRegion::dumpToStream().

## ◆ parseAssignment()

std::pair< const clang::VarDecl *, const clang::Expr * > clang::ento::parseAssignment | ( | const Stmt * | S | ) |

Definition at line 80 of file CheckerHelpers.cpp.

## ◆ printAnalyzerConfigList()

void clang::ento::printAnalyzerConfigList | ( | raw_ostream & | OS | ) |

Definition at line 76 of file CheckerRegistration.cpp.

References clang::AnalyzerOptions::printFormattedEntry().

Referenced by clang::ExecuteCompilerInvocation(), and clang::ento::ParseModelFileAction::isModelParsingAction().

## ◆ printCheckerConfigList()

void clang::ento::printCheckerConfigList | ( | raw_ostream & | OS,
|  | ArrayRef< std::string > | plugins,
|  | AnalyzerOptions & | opts,
|  | DiagnosticsEngine & | diags,
|  | const LangOptions & | LangOpts
| ) |  |

Definition at line 67 of file CheckerRegistration.cpp.

References clang::ento::CheckerRegistry::printCheckerOptionList().

Referenced by clang::ExecuteCompilerInvocation(), and clang::ento::ParseModelFileAction::isModelParsingAction().

## ◆ printCheckerHelp()

void clang::ento::printCheckerHelp | ( | raw_ostream & | OS,
|  | ArrayRef< std::string > | plugins,
|  | AnalyzerOptions & | opts,
|  | DiagnosticsEngine & | diags,
|  | const LangOptions & | LangOpts
| ) |  |

Definition at line 45 of file CheckerRegistration.cpp.

References clang::ento::CheckerRegistry::printCheckerWithDescList().

Referenced by clang::ExecuteCompilerInvocation(), and clang::ento::ParseModelFileAction::isModelParsingAction().

## ◆ printDynamicCastsJson()

static void clang::ento::printDynamicCastsJson | ( | raw_ostream & | Out,
|  | ProgramStateRef | State,
|  | const char * | NL,
|  | unsigned int | Space,
|  | bool | IsDot
| ) |  |
| static

Definition at line 175 of file DynamicType.cpp.

References clang::Indent().

Referenced by printDynamicTypeInfoJson().

## ◆ printDynamicTypeInfoJson()

void clang::ento::printDynamicTypeInfoJson | ( | raw_ostream & | Out,
|  | ProgramStateRef | State,
|  | const char * | NL = `"\n"`,
|  | unsigned int | Space = `0`,
|  | bool | IsDot = `false`
| ) |  |

Definition at line 222 of file DynamicType.cpp.

References printDynamicCastsJson(), and printDynamicTypesJson().

Referenced by clang::ento::ProgramState::printJson().

## ◆ printDynamicTypesJson()

static void clang::ento::printDynamicTypesJson | ( | raw_ostream & | Out,
|  | ProgramStateRef | State,
|  | const char * | NL,
|  | unsigned int | Space,
|  | bool | IsDot
| ) |  |
| static

Definition at line 139 of file DynamicType.cpp.

References clang::ento::DynamicTypeInfo::canBeASubClass(), clang::QualType::getAsString(), clang::Type::getPointeeType(), clang::ento::DynamicTypeInfo::getType(), clang::Indent(), and clang::ento::DynamicTypeInfo::isValid().

Referenced by printDynamicTypeInfoJson().

## ◆ printEnabledCheckerList()

void clang::ento::printEnabledCheckerList | ( | raw_ostream & | OS,
|  | ArrayRef< std::string > | plugins,
|  | AnalyzerOptions & | opts,
|  | DiagnosticsEngine & | diags,
|  | const LangOptions & | LangOpts
| ) |  |

Definition at line 56 of file CheckerRegistration.cpp.

References clang::ento::CheckerRegistry::printEnabledCheckerList().

Referenced by clang::ExecuteCompilerInvocation(), and clang::ento::ParseModelFileAction::isModelParsingAction().

## ◆ processLoopEnd()

ProgramStateRef clang::ento::processLoopEnd | ( | const Stmt * | LoopStmt,
|  | ProgramStateRef | State
| ) |  |

Updates the given ProgramState.

In current implementation it removes the top element of the stack of loops.

Definition at line 75 of file LoopUnrolling.cpp.

References State.

Referenced by clang::ento::ExprEngine::ProcessLoopExit().

## ◆ ProgramStateRelease()

void clang::ento::ProgramStateRelease | ( | const ProgramState * | state | ) |

Decrement the number of times this state is referenced.

Definition at line 34 of file ProgramState.cpp.

References clang::ento::ProgramState::getStateManager(), clang::CodeGen::state, and clang::ento::ProgramState::~ProgramState().

Referenced by clang::ento::ProgramState::contains(), and llvm::IntrusiveRefCntPtrInfo< const clang::ento::ProgramState >::release().

## ◆ ProgramStateRetain()

void clang::ento::ProgramStateRetain | ( | const ProgramState * | state | ) |

Increments the number of times this state is referenced.

Definition at line 29 of file ProgramState.cpp.

References clang::CodeGen::state.

Referenced by clang::ento::ProgramState::contains(), and llvm::IntrusiveRefCntPtrInfo< const clang::ento::ProgramState >::retain().

## ◆ RegisterCallInliner()

void clang::ento::RegisterCallInliner | ( | ExprEngine & | Eng | ) |

## ◆ registerInnerPointerCheckerAux()

void clang::ento::registerInnerPointerCheckerAux | ( | CheckerManager & | Mgr | ) |

Register the part of MallocChecker connected to InnerPointerChecker.

Definition at line 3398 of file MallocChecker.cpp.

References clang::ento::CheckerManager::getAnalyzerOptions(), clang::ento::CheckerManager::getChecker(), clang::AnalyzerOptions::getCheckerBooleanOption(), clang::ento::CheckerManager::getCurrentCheckerName(), and clang::ento::CheckerManager::registerChecker().

## ◆ removeDead()

template<typename MapTy >

ProgramStateRef clang::ento::removeDead | ( | ProgramStateRef | State,
|  | const MapTy & | Map,
|  | SymbolReaper & | SR
| ) |  |

Definition at line 122 of file DynamicType.cpp.

References clang::ento::SymbolReaper::isLiveRegion(), and State.

Referenced by clang::ento::ExprEngine::getGraph(), removeDeadCasts(), and removeDeadTypes().

## ◆ removeDeadCasts()

ProgramStateRef clang::ento::removeDeadCasts | ( | ProgramStateRef | State,
|  | SymbolReaper & | SR
| ) |  |

Removes the dead cast informations from `State`.

Definition at line 135 of file DynamicType.cpp.

References removeDead().

## ◆ removeDeadTypes()

ProgramStateRef clang::ento::removeDeadTypes | ( | ProgramStateRef | State,
|  | SymbolReaper & | SR
| ) |  |

Removes the dead type informations from `State`.

Definition at line 131 of file DynamicType.cpp.

References removeDead().

## ◆ setDynamicTypeAndCastInfo()

ProgramStateRef clang::ento::setDynamicTypeAndCastInfo | ( | ProgramStateRef | State,
|  | const MemRegion * | MR,
|  | QualType | CastFromTy,
|  | QualType | CastToTy,
|  | bool | IsCastSucceeds
| ) |  |

Set dynamic type and cast information of the region; return the new state.

Definition at line 91 of file DynamicType.cpp.

References clang::Type::isAnyPointerType(), clang::Type::isReferenceType(), and State.

Referenced by addCastTransition(), and addInstanceOfTransition().

## ◆ setDynamicTypeInfo() [1/2]

ProgramStateRef clang::ento::setDynamicTypeInfo | ( | ProgramStateRef | State,
|  | const MemRegion * | MR,
|  | DynamicTypeInfo | NewTy
| ) |  |

Set dynamic type information of the region; return the new state.

Definition at line 79 of file DynamicType.cpp.

References State, and clang::ento::MemRegion::StripCasts().

Referenced by getReturnTypeForMethod(), recordFixedType(), and setDynamicTypeInfo().

## ◆ setDynamicTypeInfo() [2/2]

ProgramStateRef clang::ento::setDynamicTypeInfo | ( | ProgramStateRef | State,
|  | const MemRegion * | MR,
|  | QualType | NewTy,
|  | bool | CanBeSubClassed = `true`
| ) |  |

Set dynamic type information of the region; return the new state.

Definition at line 86 of file DynamicType.cpp.

References setDynamicTypeInfo().

## ◆ shouldCompletelyUnroll()

bool clang::ento::shouldCompletelyUnroll | ( | const Stmt * | LoopStmt,
|  | ASTContext & | ASTCtx,
|  | ExplodedNode * | Pred,
|  | unsigned & | maxStep
| ) |  |

Definition at line 199 of file LoopUnrolling.cpp.

References isLoopStmt().

Referenced by updateLoopStack().

## ◆ simpleCondition()

static internal::Matcher<Stmt> clang::ento::simpleCondition | ( | StringRef | BindName | ) |
| static

Definition at line 82 of file LoopUnrolling.cpp.

References clang::ast_matchers::anyOf, clang::ast_matchers::binaryOperator, clang::ast_matchers::declRefExpr, clang::ast_matchers::hasEitherOperand(), clang::ast_matchers::integerLiteral, and clang::ast_matchers::varDecl.

Referenced by forLoopMatcher().

## ◆ updateLoopStack()

ProgramStateRef clang::ento::updateLoopStack | ( | const Stmt * | LoopStmt,
|  | ASTContext & | ASTCtx,
|  | ExplodedNode * | Pred,
|  | unsigned | maxVisitOnPath
| ) |  |

Updates the stack of loops contained by the ProgramState.

Definition at line 251 of file LoopUnrolling.cpp.

References clang::ento::ExplodedNode::getLocationContext(), LoopState::getNormal(), clang::ento::ExplodedNode::getState(), LoopState::getUnrolled(), isLoopStmt(), madeNewBranch(), MAXIMUM_STEP_UNROLLED, shouldCompletelyUnroll(), and State.

Referenced by clang::ento::ExprEngine::processCFGBlockEntrance().