clang  3.7.0
Classes | Namespaces | Macros | Typedefs | Functions | Variables
ExprEngine.cpp File Reference
#include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
#include "PrettyStackTraceLocationContext.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/ParentMap.h"
#include "clang/AST/StmtCXX.h"
#include "clang/AST/StmtObjC.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/PrettyStackTrace.h"
#include "clang/Basic/SourceManager.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
#include "clang/StaticAnalyzer/Core/CheckerManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "llvm/ADT/ImmutableList.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/GraphWriter.h"
Include dependency graph for ExprEngine.cpp:

Go to the source code of this file.

Classes

struct  llvm::DOTGraphTraits< ExplodedNode * >
 

Namespaces

 llvm
 

Macros

#define DEBUG_TYPE   "ExprEngine"
 

Typedefs

typedef std::pair< const
CXXBindTemporaryExpr *, const
StackFrameContext * > 
CXXBindTemporaryContext
 

Functions

 STATISTIC (NumRemoveDeadBindings,"The # of times RemoveDeadBindings is called")
 
 STATISTIC (NumMaxBlockCountReached,"The # of aborted paths due to reaching the maximum block count in ""a top level function")
 
 STATISTIC (NumMaxBlockCountReachedInInlined,"The # of aborted paths due to reaching the maximum block count in ""an inlined function")
 
 STATISTIC (NumTimesRetriedWithoutInlining,"The # of times we re-evaluated a call without inlining")
 
 REGISTER_TRAIT_WITH_PROGRAMSTATE (InitializedTemporariesSet, llvm::ImmutableSet< CXXBindTemporaryContext >) static const char *TagProviderName
 
static bool shouldRemoveDeadBindings (AnalysisManager &AMgr, const CFGStmt S, const ExplodedNode *Pred, const LocationContext *LC)
 
static SVal RecoverCastedSymbol (ProgramStateManager &StateMgr, ProgramStateRef state, const Stmt *Condition, const LocationContext *LCtx, ASTContext &Ctx)
 
static const StmtgetRightmostLeaf (const Stmt *Condition)
 
static const StmtResolveCondition (const Stmt *Condition, const CFGBlock *B)
 
 REGISTER_TRAIT_WITH_PROGRAMSTATE (InitializedGlobalsSet, llvm::ImmutableSet< const VarDecl * >) void ExprEngine
 

Variables

static ExprEngineGraphPrintCheckerState
 
static SourceManagerGraphPrintSourceManager
 

Macro Definition Documentation

#define DEBUG_TYPE   "ExprEngine"

Definition at line 41 of file ExprEngine.cpp.

Typedef Documentation

typedef std::pair<const CXXBindTemporaryExpr *, const StackFrameContext *> CXXBindTemporaryContext

Definition at line 55 of file ExprEngine.cpp.

Function Documentation

static const Stmt* getRightmostLeaf ( const Stmt Condition)
static
static SVal RecoverCastedSymbol ( ProgramStateManager StateMgr,
ProgramStateRef  state,
const Stmt Condition,
const LocationContext LCtx,
ASTContext Ctx 
)
static

RecoverCastedSymbol - A helper function for ProcessBranch that is used to try to recover some path-sensitivity for casts of symbolic integers that promote their values (which are currently not tracked well). This function returns the SVal bound to Condition->IgnoreCasts if all the

Definition at line 1422 of file ExprEngine.cpp.

References clang::Expr::getType(), clang::ASTContext::getTypeSize(), and clang::Type::isIntegralOrEnumerationType().

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

REGISTER_TRAIT_WITH_PROGRAMSTATE ( InitializedTemporariesSet  ,
llvm::ImmutableSet< CXXBindTemporaryContext  
) const
REGISTER_TRAIT_WITH_PROGRAMSTATE ( InitializedGlobalsSet  ,
llvm::ImmutableSet< const VarDecl * >   
)

The GDM component containing the set of global variables which have been previously initialized with explicit initializers.

Definition at line 1620 of file ExprEngine.cpp.

static const Stmt* ResolveCondition ( const Stmt Condition,
const CFGBlock B 
)
static
static bool shouldRemoveDeadBindings ( AnalysisManager AMgr,
const CFGStmt  S,
const ExplodedNode Pred,
const LocationContext LC 
)
static
STATISTIC ( NumRemoveDeadBindings  ,
"The # of times RemoveDeadBindings is called"   
)
STATISTIC ( NumMaxBlockCountReached  ,
"The # of aborted paths due to reaching the maximum block count in ""a top level function"   
)
STATISTIC ( NumMaxBlockCountReachedInInlined  ,
"The # of aborted paths due to reaching the maximum block count in ""an inlined function"   
)
STATISTIC ( NumTimesRetriedWithoutInlining  ,
"The # of times we re-evaluated a call without inlining"   
)

Variable Documentation

ExprEngine* GraphPrintCheckerState
static
SourceManager* GraphPrintSourceManager
static