clang
9.0.0
|
Namespaces | |
allocation_state | |
categories | |
check | |
cocoa | |
coreFoundation | |
eval | |
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 | 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 | 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 | 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 | 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 |
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 | GRBugReporter |
GRBugReporter is used for generating path-sensitive reports. 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 | NodeMapClosure |
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 | 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< DynamicTypeMap > |
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 | DiagnosticForConsumerMapTy = llvm::DenseMap< PathDiagnosticConsumer *, std::unique_ptr< PathDiagnostic > > |
A mapping from diagnostic consumers to the diagnostics they should consume. More... | |
using | SymbolRef = const SymExpr * |
using | LocationOrAnalysisDeclContext = llvm::PointerUnion< const LocationContext *, AnalysisDeclContext * > |
using | FilesToLineNumsMap = std::map< FileID, std::set< unsigned > > |
File IDs mapped to sets of line numbers. More... | |
typedef std::vector< PathDiagnosticConsumer * > | PathDiagnosticConsumers |
using | DynamicTypeMapTy = llvm::ImmutableMap< const MemRegion *, DynamicTypeInfo > |
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 | SymbolRefSmallVectorTy = SmallVector< SymbolRef, 2 > |
using | SymbolID = unsigned |
using | UninitFieldMap = std::map< const FieldRegion *, llvm::SmallString< 50 > > |
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 *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... | |
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) |
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 std::unique_ptr<ConstraintManager>(* clang::ento::ConstraintManagerCreator) (ProgramStateManager &, SubEngine *) |
Definition at line 41 of file ProgramState.h.
using clang::ento::ConstraintRangeTy = typedef llvm::ImmutableMap<SymbolRef, RangeSet> |
Definition at line 129 of file RangedConstraintManager.h.
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.
using clang::ento::DynamicTypeMapTy = typedef llvm::ImmutableMap<const MemRegion *, DynamicTypeInfo> |
Definition at line 32 of file DynamicTypeMap.h.
using clang::ento::FilesToLineNumsMap = typedef std::map<FileID, std::set<unsigned> > |
File IDs mapped to sets of line numbers.
Definition at line 779 of file PathDiagnostic.h.
using clang::ento::InterExplodedGraphMap = typedef llvm::DenseMap<const ExplodedNode *, const ExplodedNode *> |
Definition at line 261 of file ExplodedGraph.h.
using clang::ento::InvalidatedSymbols = typedef llvm::DenseSet<SymbolRef> |
using clang::ento::LocationOrAnalysisDeclContext = typedef llvm::PointerUnion<const LocationContext *, AnalysisDeclContext *> |
Definition at line 153 of file PathDiagnostic.h.
typedef std::vector<PathDiagnosticConsumer*> clang::ento::PathDiagnosticConsumers |
Definition at line 26 of file PathDiagnosticConsumers.h.
typedef IntrusiveRefCntPtr<const ProgramState> clang::ento::ProgramStateRef |
Definition at line 37 of file ProgramState_Fwd.h.
using clang::ento::SetOfConstDecls = typedef llvm::DenseSet<const Decl *> |
Definition at line 31 of file FunctionSummary.h.
using clang::ento::SetOfDecls = typedef std::deque<Decl *> |
Definition at line 30 of file FunctionSummary.h.
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.
typedef std::unique_ptr<StoreManager>(* clang::ento::StoreManagerCreator) (ProgramStateManager &) |
Definition at line 43 of file ProgramState.h.
using clang::ento::SymbolID = typedef unsigned |
typedef const SymExpr * clang::ento::SymbolRef |
Definition at line 58 of file PathDiagnostic.h.
using clang::ento::SymbolRefSmallVectorTy = typedef SmallVector<SymbolRef, 2> |
using clang::ento::UninitFieldMap = typedef std::map<const FieldRegion *, llvm::SmallString<50> > |
Definition at line 194 of file UninitializedObject.h.
Definition at line 53 of file RetainSummaryManager.h.
Definition at line 58 of file CallEvent.h.
|
strong |
Enumerator | |
---|---|
Contradicted | |
Nullable | |
Unspecified | |
Nonnull |
Definition at line 52 of file CheckerHelpers.h.
|
strong |
Enumerator | |
---|---|
Pre | |
Post | |
MessageNil |
Definition at line 110 of file CheckerManager.h.
|
strong |
Determines the object kind of a tracked object.
Definition at line 35 of file RetainSummaryManager.h.
Describes the different reasons a pointer escapes during analysis.
Definition at line 75 of file CheckerManager.h.
|
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().
|
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().
|
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().
Definition at line 67 of file CheckerHelpers.cpp.
Definition at line 37 of file CheckerHelpers.cpp.
Definition at line 22 of file CheckerHelpers.cpp.
Definition at line 51 of file CheckerHelpers.cpp.
Definition at line 32 of file CheckerHelpers.h.
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 822 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().
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.
std::unique_ptr< StoreManager > clang::ento::CreateFieldsOnlyRegionStoreManager | ( | ProgramStateManager & | StMgr | ) |
Definition at line 649 of file RegionStore.cpp.
Referenced by clang::ento::StoreRef::operator=().
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, and X.
std::unique_ptr< StoreManager > clang::ento::CreateRegionStoreManager | ( | ProgramStateManager & | StMgr | ) |
Definition at line 643 of file RegionStore.cpp.
Referenced by clang::ento::StoreRef::operator=().
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().
std::unique_ptr< ConstraintManager > clang::ento::CreateZ3ConstraintManager | ( | ProgramStateManager & | statemgr, |
SubEngine * | subengine | ||
) |
Definition at line 16 of file SMTConstraintManager.cpp.
References clang::ento::ProgramStateManager::getSValBuilder().
|
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.
|
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().
DynamicTypeInfo clang::ento::getDynamicTypeInfo | ( | ProgramStateRef | State, |
const MemRegion * | Reg | ||
) |
Get dynamic type information for a region.
Definition at line 28 of file DynamicTypeMap.cpp.
References clang::ento::SymExpr::getType(), and clang::ento::MemRegion::StripCasts().
Referenced by clang::CXXInstanceCall::getRuntimeDefinition(), clang::ObjCMethodCall::getRuntimeDefinition(), hasDefinition(), and recordFixedType().
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().
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().
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().
|
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().
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().
Definition at line 71 of file LoopUnrolling.cpp.
Referenced by shouldCompletelyUnroll(), and updateLoopStack().
|
static |
Definition at line 162 of file LoopUnrolling.cpp.
References clang::VarDecl::hasGlobalStorage(), and clang::ento::ExplodedNode::pred_empty().
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().
bool clang::ento::isUnrolledState | ( | ProgramStateRef | State | ) |
Returns if the given State indicates that is inside a completely unrolled loop.
Definition at line 286 of file LoopUnrolling.cpp.
Referenced by clang::ento::ExprEngine::processCFGBlockEntrance().
bool clang::ento::madeNewBranch | ( | ExplodedNode * | N, |
const Stmt * | LoopStmt | ||
) |
Definition at line 229 of file LoopUnrolling.cpp.
Referenced by updateLoopStack().
|
inline |
Definition at line 104 of file SymExpr.h.
References clang::ento::SymExpr::dumpToStream().
|
inline |
Definition at line 212 of file SVals.h.
References clang::ento::SVal::dumpToStream().
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::getCheckName(), and clang::ento::CheckName::getName().
Referenced by clang::ento::CheckerBase::printState().
|
inline |
Definition at line 1479 of file MemRegion.h.
References clang::ento::MemRegion::dumpToStream().
std::pair< const clang::VarDecl *, const clang::Expr * > clang::ento::parseAssignment | ( | const Stmt * | S | ) |
Definition at line 80 of file CheckerHelpers.cpp.
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().
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().
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().
void clang::ento::printDynamicTypeInfoJson | ( | raw_ostream & | Out, |
ProgramStateRef | State, | ||
const char * | NL = "\n" , |
||
unsigned int | Space = 0 , |
||
bool | IsDot = false |
||
) |
Definition at line 57 of file DynamicTypeMap.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 clang::ento::ProgramState::printJson(), and setDynamicTypeInfo().
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().
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().
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().
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().
void clang::ento::RegisterCallInliner | ( | ExprEngine & | Eng | ) |
void clang::ento::registerInnerPointerCheckerAux | ( | CheckerManager & | Mgr | ) |
Register the part of MallocChecker connected to InnerPointerChecker.
Definition at line 3130 of file MallocChecker.cpp.
References clang::ento::CheckerManager::getAnalyzerOptions(), clang::ento::CheckerManager::getChecker(), clang::AnalyzerOptions::getCheckerBooleanOption(), clang::ento::CheckerManager::getCurrentCheckName(), and clang::ento::CheckerManager::registerChecker().
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 49 of file DynamicTypeMap.cpp.
References clang::ento::MemRegion::StripCasts().
Referenced by getReturnTypeForMethod(), recordFixedType(), and setDynamicTypeInfo().
|
inline |
Set dynamic type information of the region; return the new state.
Definition at line 49 of file DynamicTypeMap.h.
References printDynamicTypeInfoJson(), and setDynamicTypeInfo().
bool clang::ento::shouldCompletelyUnroll | ( | const Stmt * | LoopStmt, |
ASTContext & | ASTCtx, | ||
ExplodedNode * | Pred, | ||
unsigned & | maxStep | ||
) |
Definition at line 197 of file LoopUnrolling.cpp.
References isLoopStmt().
Referenced by updateLoopStack().
|
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().
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 249 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().