clang
6.0.0
|
#include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
#include "PrettyStackTraceLocationContext.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/ParentMap.h"
#include "clang/Analysis/CFGStmtMap.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 "clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/GraphWriter.h"
Go to the source code of this file.
Classes | |
struct | llvm::DOTGraphTraits< ExplodedNode * > |
Namespaces | |
llvm | |
DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators. | |
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) |
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). More... | |
static const Stmt * | getRightmostLeaf (const Stmt *Condition) |
static const Stmt * | ResolveCondition (const Stmt *Condition, const CFGBlock *B) |
REGISTER_TRAIT_WITH_PROGRAMSTATE (InitializedGlobalsSet, llvm::ImmutableSet< const VarDecl *>) void ExprEngine | |
The GDM component containing the set of global variables which have been previously initialized with explicit initializers. More... | |
Variables | |
static ExprEngine * | GraphPrintCheckerState |
static SourceManager * | GraphPrintSourceManager |
#define DEBUG_TYPE "ExprEngine" |
Definition at line 44 of file ExprEngine.cpp.
typedef std::pair<const CXXBindTemporaryExpr *, const StackFrameContext *> CXXBindTemporaryContext |
Definition at line 58 of file ExprEngine.cpp.
Definition at line 1675 of file ExprEngine.cpp.
References clang::BinaryOperator::getRHS(), clang::Expr::IgnoreParens(), and clang::BinaryOperator::isLogicalOp().
|
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 1636 of file ExprEngine.cpp.
References clang::Expr::getType(), clang::ASTContext::getTypeSize(), clang::Type::isIntegralOrEnumerationType(), and clang::T.
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 1833 of file ExprEngine.cpp.
References clang::ento::ExplodedNode::getLocationContext(), clang::DeclStmt::getSingleDecl(), clang::ento::ExplodedNode::getState(), and clang::CodeGen::state.
Definition at line 1701 of file ExprEngine.cpp.
References clang::CFGBlock::getTerminator(), clang::BinaryOperator::isLogicalOp(), and clang::CFGTerminator::isTemporaryDtorsBranch().
Referenced by clang::ento::ExprEngine::processBranch().
|
static |
Definition at line 375 of file ExprEngine.cpp.
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" | |||
) |
|
static |
Definition at line 2671 of file ExprEngine.cpp.
|
static |
Definition at line 2672 of file ExprEngine.cpp.