Lines Matching defs:ExprEngine
1 //=-- ExprEngine.cpp - Path-Sensitive Expression-Level Dataflow ---*- C++ -*-=
16 #define DEBUG_TYPE "ExprEngine"
18 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
58 ExprEngine::ExprEngine(AnalysisManager &mgr, bool gcEnabled,
84 ExprEngine::~ExprEngine() {
92 ProgramStateRef ExprEngine::getInitialState(const LocationContext *InitLoc) {
171 ExprEngine::createTemporaryRegionIfNeeded(ProgramStateRef State,
248 ProgramStateRef ExprEngine::processAssume(ProgramStateRef state,
253 bool ExprEngine::wantsRegionChangeUpdate(ProgramStateRef state) {
258 ExprEngine::processRegionChanges(ProgramStateRef state,
267 void ExprEngine::printState(raw_ostream &Out, ProgramStateRef State,
272 void ExprEngine::processEndWorklist(bool hasWorkRemaining) {
276 void ExprEngine::processCFGElement(const CFGElement E, ExplodedNode *Pred,
325 void ExprEngine::removeDead(ExplodedNode *Pred, ExplodedNodeSet &Out,
364 static SimpleProgramPointTag cleanupTag("ExprEngine : Clean Node");
407 void ExprEngine::ProcessStmt(const CFGStmt S,
438 void ExprEngine::ProcessInitializer(const CFGInitializer Init,
522 void ExprEngine::ProcessImplicitDtor(const CFGImplicitDtor D,
546 void ExprEngine::ProcessAutomaticObjDtor(const CFGAutomaticObjDtor Dtor,
565 void ExprEngine::ProcessBaseDtor(const CFGBaseDtor D,
585 void ExprEngine::ProcessMemberDtor(const CFGMemberDtor D,
602 void ExprEngine::ProcessTemporaryDtor(const CFGTemporaryDtor D,
606 void ExprEngine::Visit(const Stmt *S, ExplodedNode *Pred,
1143 bool ExprEngine::replayWithoutInlining(ExplodedNode *N,
1207 void ExprEngine::processCFGBlockEntrance(const BlockEdge &L,
1214 static SimpleProgramPointTag tag("ExprEngine : Block count exceeded");
1329 void ExprEngine::processBranch(const Stmt *Condition, const Stmt *Term,
1430 void ExprEngine::processStaticInitializer(const DeclStmt *DS,
1456 void ExprEngine::processIndirectGoto(IndirectGotoNodeBuilder &builder) {
1500 void ExprEngine::processEndOfFunction(NodeBuilderContext& BC,
1525 void ExprEngine::processSwitch(SwitchNodeBuilder& builder) {
1630 void ExprEngine::VisitCommonDeclRefExpr(const Expr *Ex, const NamedDecl *D,
1685 void ExprEngine::VisitLvalArraySubscriptExpr(const ArraySubscriptExpr *A,
1712 void ExprEngine::VisitMemberExpr(const MemberExpr *M, ExplodedNode *Pred,
1803 ProgramStateRef ExprEngine::processPointerEscapedOnBind(ProgramStateRef State,
1844 ExprEngine::notifyCheckersOfPointerEscape(ProgramStateRef State,
1903 void ExprEngine::evalBind(ExplodedNodeSet &Dst, const Stmt *StoreE,
1964 void ExprEngine::evalStore(ExplodedNodeSet &Dst, const Expr *AssignE,
1987 void ExprEngine::evalLoad(ExplodedNodeSet &Dst,
2007 loadReferenceTag("ExprEngine : Load Reference");
2026 void ExprEngine::evalLoadCommon(ExplodedNodeSet &Dst,
2063 void ExprEngine::evalLocation(ExplodedNodeSet &Dst,
2090 static SimpleProgramPointTag tag("ExprEngine: Location");
2100 ExprEngine::geteagerlyAssumeBinOpBifurcationTags() {
2102 eagerlyAssumeBinOpBifurcationTrue("ExprEngine : Eagerly Assume True"),
2103 eagerlyAssumeBinOpBifurcationFalse("ExprEngine : Eagerly Assume False");
2108 void ExprEngine::evalEagerlyAssumeBinOpBifurcation(ExplodedNodeSet &Dst,
2150 void ExprEngine::VisitGCCAsmStmt(const GCCAsmStmt *A, ExplodedNode *Pred,
2174 void ExprEngine::VisitMSAsmStmt(const MSAsmStmt *A, ExplodedNode *Pred,
2185 static ExprEngine* GraphPrintCheckerState;
2195 // FIXME: Since we do not cache error nodes in ExprEngine now, this does not
2449 void ExprEngine::ViewGraph(bool trim) {
2472 llvm::ViewGraph(*G.roots_begin(), "ExprEngine");
2480 void ExprEngine::ViewGraph(ArrayRef<const ExplodedNode*> Nodes) {