clang  6.0.0svn
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
clang::ento Namespace Reference

Namespaces

 bugreporter
 
 categories
 
 check
 
 cocoa
 
 coreFoundation
 
 eval
 
 loc
 
 mpi
 
 nonloc
 
 objc_retain
 
 summMgr
 

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  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  BugReporterVisitor
 BugReporterVisitors are used to add custom diagnostics along a path. More...
 
class  BugReporterVisitorImpl
 This class provides a convenience implementation for clone() using the Curiously-Recurring Template Pattern. More...
 
class  BugType
 
class  BuiltinBug
 
class  CallDescription
 This class represents a description of a function call using the number of arguments and the name of the function. More...
 
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  CheckerOptInfo
 Represents a request to include or exclude a checker or package from a specific analysis run. 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  CheckName
 
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  ConditionBRVisitor
 Visitor that tries to report interesting diagnostics from conditions. More...
 
class  ConditionTruthVal
 
class  ConstraintManager
 
class  CoreEngine
 CoreEngine - Implements the core logic of the graph-reachability analysis. More...
 
class  CXXBaseObjectRegion
 
class  CXXSelfAssignmentBRVisitor
 
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
 
struct  DerivedSymTaint
 The GDM component mapping derived symbols' parent symbols to their underlying regions. More...
 
class  DynamicTypeInfo
 Stores the currently inferred strictest bound on the runtime type of a region in a given state along the analysis path. More...
 
struct  DynamicTypeMap
 The GDM component containing the dynamic type info. More...
 
class  ElementRegion
 ElementRegin 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  FieldRegion
 
class  FindLastStoreBRVisitor
 
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  GRBugReporter
 
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  LikelyFalsePositiveSuppressionBRVisitor
 Suppress reports that might lead to known false positives. More...
 
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  NilReceiverBRVisitor
 Prints path notes when a message is sent to a nil receiver. More...
 
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  ObjCIvarRegion
 
class  ObjCStringRegion
 The region associated with an ObjCStringLiteral. 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  PathDiagnosticRange
 
class  PathDiagnosticSpotPiece
 
class  PathPieces
 
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< DerivedSymTaint >
 
struct  ProgramStateTrait< DynamicTypeMap >
 
struct  ProgramStateTrait< mpi::RequestMap >
 
struct  ProgramStateTrait< ReplayWithoutInlining >
 
struct  ProgramStateTrait< SymbolSet >
 
struct  ProgramStateTrait< TaintMap >
 
class  RangedConstraintManager
 
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  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  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  SuppressInlineDefensiveChecksVisitor
 
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  TaintManager
 
struct  TaintMap
 The GDM component containing the tainted root symbols. More...
 
class  TrackConstraintBRVisitor
 
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
 
class  UndefOrNullArgVisitor
 When a region containing undefined value or '0' value is passed as an argument in a call, marks the call as interesting. More...
 
class  UnknownSpaceRegion
 
class  UnknownVal
 
class  VarRegion
 
class  WorkList
 
class  WorkListUnit
 

Typedefs

typedef const SymExprSymbolRef
 
typedef llvm::PointerUnion< const LocationContext *, AnalysisDeclContext * > LocationOrAnalysisDeclContext
 
typedef std::vector< PathDiagnosticConsumer * > PathDiagnosticConsumers
 
typedef llvm::ImmutableMap< const MemRegion *, DynamicTypeInfoDynamicTypeMapImpl
 
typedef llvm::DenseMap< const ExplodedNode *, const ExplodedNode * > InterExplodedGraphMap
 
typedef std::deque< Decl * > SetOfDecls
 
typedef llvm::DenseSet< const Decl * > SetOfConstDecls
 
typedef std::unique_ptr< ConstraintManager >(* ConstraintManagerCreator) (ProgramStateManager &, SubEngine *)
 
typedef std::unique_ptr< StoreManager >(* StoreManagerCreator) (ProgramStateManager &)
 
typedef llvm::ImmutableMap< const SubRegion *, TaintTagTypeTaintedSubRegions
 
typedef IntrusiveRefCntPtr< const ProgramStateProgramStateRef
 
typedef llvm::DenseSet< SymbolRefInvalidatedSymbols
 
typedef const void * Store
 Store - This opaque type encapsulates an immutable mapping from locations to values. More...
 
typedef SmallVector< SymbolRef, 2 > SymbolRefSmallVectorTy
 
typedef unsigned SymbolID
 
typedef llvm::ImmutableMap< SymbolRef, TaintTagTypeTaintMapImpl
 
typedef llvm::ImmutableMap< SymbolRef, TaintedSubRegionsDerivedSymTaintImpl
 
typedef unsigned TaintTagType
 The type of taint, which helps to differentiate between different types of taint. More...
 

Enumerations

enum  PointerEscapeKind { PSK_EscapeOnBind, PSK_DirectEscapeOnCall, PSK_IndirectEscapeOnCall, 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
}
 

Functions

void registerBuiltinCheckers (CheckerRegistry &registry)
 
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)
 
std::unique_ptr< ConstraintManagerCreateRangeConstraintManager (ProgramStateManager &statemgr, SubEngine *subengine)
 
std::unique_ptr< ConstraintManagerCreateZ3ConstraintManager (ProgramStateManager &statemgr, SubEngine *subengine)
 
DynamicTypeInfo getDynamicTypeInfo (ProgramStateRef State, const MemRegion *Reg)
 Get dynamic type information for a region. More...
 
ProgramStateRef setDynamicTypeInfo (ProgramStateRef State, const MemRegion *Reg, DynamicTypeInfo NewTy)
 Set dynamic type information of the region; return the new state. More...
 
ProgramStateRef setDynamicTypeInfo (ProgramStateRef State, const MemRegion *Reg, QualType NewTy, bool CanBeSubClassed=true)
 Set dynamic type information of the region; return the new state. More...
 
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...
 
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< StoreManagerCreateRegionStoreManager (ProgramStateManager &StMgr)
 
std::unique_ptr< StoreManagerCreateFieldsOnlyRegionStoreManager (ProgramStateManager &StMgr)
 
SValBuildercreateSimpleSValBuilder (llvm::BumpPtrAllocator &alloc, ASTContext &context, ProgramStateManager &stateMgr)
 
std::unique_ptr< AnalysisASTConsumerCreateAnalysisConsumer (CompilerInstance &CI)
 CreateAnalysisConsumer - Creates an ASTConsumer to run various code analysis passes. More...
 
std::unique_ptr< CheckerManagercreateCheckerManager (AnalyzerOptions &opts, const LangOptions &langOpts, ArrayRef< std::string > plugins, DiagnosticsEngine &diags)
 
void printCheckerHelp (raw_ostream &OS, ArrayRef< std::string > plugins)
 
void printEnabledCheckerList (raw_ostream &OS, ArrayRef< std::string > plugins, const AnalyzerOptions &opts)
 
bool shouldIncludeAllocationSiteInLeakDiagnostics (AnalyzerOptions &AOpts)
 Returns true if leak diagnostics should directly reference the allocatin site (where possible). More...
 
void registerCStringCheckerBasic (CheckerManager &Mgr)
 Register the checker which evaluates CString API calls. More...
 
template<typename... IdentifierInfos>
static Selector getKeywordSelector (ASTContext &Ctx, IdentifierInfos *... IIs)
 
template<typename... IdentifierInfos>
static void lazyInitKeywordSelector (Selector &Sel, ASTContext &Ctx, IdentifierInfos *... IIs)
 
static void lazyInitNullarySelector (Selector &Sel, ASTContext &Ctx, const char *Name)
 
static bool isLoopStmt (const Stmt *S)
 
static internal::Matcher< StmtsimpleCondition (StringRef BindName)
 
static internal::Matcher< StmtchangeIntBoundNode (internal::Matcher< Decl > VarNodeMatcher)
 
static internal::Matcher< StmtcallByRef (internal::Matcher< Decl > VarNodeMatcher)
 
static internal::Matcher< StmtassignedToRef (internal::Matcher< Decl > VarNodeMatcher)
 
static internal::Matcher< StmtgetAddrTo (internal::Matcher< Decl > VarNodeMatcher)
 
static internal::Matcher< StmthasSuspiciousStmt (StringRef NodeName)
 
static internal::Matcher< StmtforLoopMatcher ()
 
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)
 

Variables

static const TaintTagType TaintTagGeneric = 0
 

Typedef Documentation

◆ ConstraintManagerCreator

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

Definition at line 42 of file ProgramState.h.

◆ DerivedSymTaintImpl

Definition at line 42 of file TaintManager.h.

◆ DynamicTypeMapImpl

Definition at line 28 of file DynamicTypeMap.h.

◆ InterExplodedGraphMap

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

Definition at line 244 of file ExplodedGraph.h.

◆ InvalidatedSymbols

Definition at line 35 of file Store.h.

◆ LocationOrAnalysisDeclContext

Definition at line 132 of file PathDiagnostic.h.

◆ PathDiagnosticConsumers

Definition at line 27 of file PathDiagnosticConsumers.h.

◆ ProgramStateRef

Definition at line 38 of file ProgramState_Fwd.h.

◆ SetOfConstDecls

Definition at line 29 of file FunctionSummary.h.

◆ SetOfDecls

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

Definition at line 28 of file FunctionSummary.h.

◆ Store

typedef const void* clang::ento::Store

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 26 of file StoreRef.h.

◆ StoreManagerCreator

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

Definition at line 44 of file ProgramState.h.

◆ SymbolID

typedef unsigned clang::ento::SymbolID

Definition at line 104 of file SymExpr.h.

◆ SymbolRef

Definition at line 46 of file PathDiagnostic.h.

◆ SymbolRefSmallVectorTy

Definition at line 102 of file SymExpr.h.

◆ TaintedSubRegions

Definition at line 46 of file ProgramState.h.

◆ TaintMapImpl

Definition at line 32 of file TaintManager.h.

◆ TaintTagType

typedef unsigned clang::ento::TaintTagType

The type of taint, which helps to differentiate between different types of taint.

Definition at line 22 of file TaintTag.h.

Enumeration Type Documentation

◆ 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 35 of file CallEvent.h.

◆ ObjCMessageVisitKind

Enumerator
Pre 
Post 
MessageNil 

Definition at line 97 of file CheckerManager.h.

◆ 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_EscapeOther 

The reason for pointer escape is unknown.

For example, a region containing this pointer is invalidated.

Definition at line 65 of file CheckerManager.h.

Function Documentation

◆ assignedToRef()

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

◆ callByRef()

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

◆ changeIntBoundNode()

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

◆ containsBuiltinOffsetOf()

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

Definition at line 64 of file CheckerHelpers.cpp.

◆ containsEnum()

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

Definition at line 34 of file CheckerHelpers.cpp.

◆ containsMacro()

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

Definition at line 19 of file CheckerHelpers.cpp.

◆ containsStaticLocal()

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

Definition at line 48 of file CheckerHelpers.cpp.

◆ containsStmt()

template<class T >
bool clang::ento::containsStmt ( const Stmt S)

Definition at line 31 of file CheckerHelpers.h.

◆ CreateAnalysisConsumer()

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

◆ createCheckerManager()

std::unique_ptr< CheckerManager > clang::ento::createCheckerManager ( AnalyzerOptions opts,
const LangOptions langOpts,
ArrayRef< std::string >  plugins,
DiagnosticsEngine diags 
)

◆ CreateFieldsOnlyRegionStoreManager()

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

Definition at line 635 of file RegionStore.cpp.

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

◆ CreateRangeConstraintManager()

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

◆ CreateRegionStoreManager()

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

Definition at line 629 of file RegionStore.cpp.

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

◆ createSimpleSValBuilder()

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

◆ CreateZ3ConstraintManager()

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

◆ forLoopMatcher()

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

◆ getAddrTo()

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

◆ getDynamicTypeInfo()

DynamicTypeInfo clang::ento::getDynamicTypeInfo ( ProgramStateRef  State,
const MemRegion Reg 
)

◆ getKeywordSelector()

template<typename... IdentifierInfos>
static Selector clang::ento::getKeywordSelector ( ASTContext Ctx,
IdentifierInfos *...  IIs 
)
inlinestatic

◆ getWidenedLoopState()

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

◆ hasSuspiciousStmt()

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

◆ isLoopStmt()

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

Definition at line 72 of file LoopUnrolling.cpp.

Referenced by shouldCompletelyUnroll(), and updateLoopStack().

◆ isPossiblyEscaped()

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

◆ isUnrolledState()

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

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

Definition at line 280 of file LoopUnrolling.cpp.

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

◆ lazyInitKeywordSelector()

template<typename... IdentifierInfos>
static void clang::ento::lazyInitKeywordSelector ( Selector Sel,
ASTContext Ctx,
IdentifierInfos *...  IIs 
)
inlinestatic

Definition at line 29 of file SelectorExtras.h.

References getKeywordSelector(), and clang::Selector::isNull().

◆ lazyInitNullarySelector()

static void clang::ento::lazyInitNullarySelector ( Selector Sel,
ASTContext Ctx,
const char *  Name 
)
inlinestatic

Definition at line 36 of file SelectorExtras.h.

◆ madeNewBranch()

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

Definition at line 223 of file LoopUnrolling.cpp.

Referenced by updateLoopStack().

◆ operator<<()

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

Dump checker name to stream.

Definition at line 34 of file Checker.cpp.

References clang::ento::CheckerBase::getCheckName(), and clang::ento::CheckName::getName().

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

◆ parseAssignment()

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

Definition at line 77 of file CheckerHelpers.cpp.

◆ printCheckerHelp()

void clang::ento::printCheckerHelp ( raw_ostream &  OS,
ArrayRef< std::string >  plugins 
)

◆ printEnabledCheckerList()

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

◆ 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 76 of file LoopUnrolling.cpp.

References State.

◆ ProgramStateRelease()

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

◆ ProgramStateRetain()

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

Increments the number of times this state is referenced.

Definition at line 28 of file ProgramState.cpp.

References clang::CodeGen::state.

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

◆ registerBuiltinCheckers()

void clang::ento::registerBuiltinCheckers ( CheckerRegistry registry)

Definition at line 26 of file ClangCheckers.cpp.

◆ RegisterCallInliner()

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

◆ registerCStringCheckerBasic()

void clang::ento::registerCStringCheckerBasic ( CheckerManager Mgr)

Register the checker which evaluates CString API calls.

Definition at line 2275 of file CStringChecker.cpp.

◆ setDynamicTypeInfo() [1/2]

ProgramStateRef clang::ento::setDynamicTypeInfo ( ProgramStateRef  State,
const MemRegion Reg,
DynamicTypeInfo  NewTy 
)

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

Definition at line 42 of file DynamicTypeMap.cpp.

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

Referenced by clang::ento::ProgramStateTrait< DynamicTypeMap >::GDMIndex(), getReturnTypeForMethod(), recordFixedType(), and setDynamicTypeInfo().

◆ setDynamicTypeInfo() [2/2]

ProgramStateRef clang::ento::setDynamicTypeInfo ( ProgramStateRef  State,
const MemRegion Reg,
QualType  NewTy,
bool  CanBeSubClassed = true 
)
inline

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

Definition at line 47 of file DynamicTypeMap.h.

References setDynamicTypeInfo().

◆ shouldCompletelyUnroll()

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

Definition at line 198 of file LoopUnrolling.cpp.

References isLoopStmt().

Referenced by updateLoopStack().

◆ shouldIncludeAllocationSiteInLeakDiagnostics()

bool clang::ento::shouldIncludeAllocationSiteInLeakDiagnostics ( AnalyzerOptions AOpts)

Returns true if leak diagnostics should directly reference the allocatin site (where possible).

The default is false.

Definition at line 19 of file AllocationDiagnostics.cpp.

References clang::AnalyzerOptions::getBooleanOption().

Referenced by GetAllocationSite().

◆ simpleCondition()

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

◆ updateLoopStack()

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

Variable Documentation

◆ TaintTagGeneric

const TaintTagType clang::ento::TaintTagGeneric = 0
static

Definition at line 23 of file TaintTag.h.