sgatev updated this revision to Diff 449398. sgatev added a comment. Update commit message
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D131014/new/ https://reviews.llvm.org/D131014 Files: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp clang/unittests/Analysis/FlowSensitive/TestingSupport.h clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp
Index: clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp =================================================================== --- clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp +++ clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp @@ -1245,9 +1245,10 @@ return UncheckedOptionalAccessModel(Ctx, Options); }, [&Diagnostics, Diagnoser = UncheckedOptionalAccessDiagnoser(Options)]( - ASTContext &Ctx, const Stmt *Stmt, + ASTContext &Ctx, const CFGStmt &Stmt, const TypeErasedDataflowAnalysisState &State) mutable { - auto StmtDiagnostics = Diagnoser.diagnose(Ctx, Stmt, State.Env); + auto StmtDiagnostics = + Diagnoser.diagnose(Ctx, Stmt.getStmt(), State.Env); llvm::move(StmtDiagnostics, std::back_inserter(Diagnostics)); }, [&Diagnostics](AnalysisData AnalysisData) { Index: clang/unittests/Analysis/FlowSensitive/TestingSupport.h =================================================================== --- clang/unittests/Analysis/FlowSensitive/TestingSupport.h +++ clang/unittests/Analysis/FlowSensitive/TestingSupport.h @@ -76,7 +76,7 @@ llvm::StringRef Code, ast_matchers::internal::Matcher<FunctionDecl> TargetFuncMatcher, std::function<AnalysisT(ASTContext &, Environment &)> MakeAnalysis, - std::function<void(ASTContext &, const Stmt *, + std::function<void(ASTContext &, const CFGStmt &, const TypeErasedDataflowAnalysisState &)> PostVisitStmt, std::function<void(AnalysisData)> VerifyResults, ArrayRef<std::string> Args, @@ -112,11 +112,11 @@ Environment Env(DACtx, *F); auto Analysis = MakeAnalysis(Context, Env); - std::function<void(const Stmt *, const TypeErasedDataflowAnalysisState &)> + std::function<void(const CFGStmt &, const TypeErasedDataflowAnalysisState &)> PostVisitStmtClosure = nullptr; if (PostVisitStmt != nullptr) { PostVisitStmtClosure = [&PostVisitStmt, &Context]( - const Stmt *Stmt, + const CFGStmt &Stmt, const TypeErasedDataflowAnalysisState &State) { PostVisitStmt(Context, Stmt, State); }; Index: clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp =================================================================== --- clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp +++ clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp @@ -333,7 +333,8 @@ runTypeErasedDataflowAnalysis( const ControlFlowContext &CFCtx, TypeErasedDataflowAnalysis &Analysis, const Environment &InitEnv, - std::function<void(const Stmt *, const TypeErasedDataflowAnalysisState &)> + std::function<void(const CFGStmt &, + const TypeErasedDataflowAnalysisState &)> PostVisitStmt) { PostOrderCFGView POV(&CFCtx.getCFG()); ForwardDataflowWorklist Worklist(CFCtx.getCFG(), &POV); @@ -398,12 +399,9 @@ // Skip blocks that were not evaluated. if (!BlockStates[Block->getBlockID()]) continue; - transferBlock( - CFCtx, BlockStates, *Block, InitEnv, Analysis, - [&PostVisitStmt](const clang::CFGStmt &Stmt, - const TypeErasedDataflowAnalysisState &State) { - PostVisitStmt(Stmt.getStmt(), State); - }); + + transferBlock(CFCtx, BlockStates, *Block, InitEnv, Analysis, + PostVisitStmt); } } Index: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h +++ clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h @@ -138,7 +138,8 @@ runTypeErasedDataflowAnalysis( const ControlFlowContext &CFCtx, TypeErasedDataflowAnalysis &Analysis, const Environment &InitEnv, - std::function<void(const Stmt *, const TypeErasedDataflowAnalysisState &)> + std::function<void(const CFGStmt &, + const TypeErasedDataflowAnalysisState &)> PostVisitStmt = nullptr); } // namespace dataflow Index: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h +++ clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h @@ -125,14 +125,14 @@ runDataflowAnalysis( const ControlFlowContext &CFCtx, AnalysisT &Analysis, const Environment &InitEnv, - std::function<void(const Stmt *, const DataflowAnalysisState< - typename AnalysisT::Lattice> &)> + std::function<void(const CFGStmt &, const DataflowAnalysisState< + typename AnalysisT::Lattice> &)> PostVisitStmt = nullptr) { - std::function<void(const Stmt *, const TypeErasedDataflowAnalysisState &)> + std::function<void(const CFGStmt &, const TypeErasedDataflowAnalysisState &)> PostVisitStmtClosure = nullptr; if (PostVisitStmt != nullptr) { PostVisitStmtClosure = [&PostVisitStmt]( - const Stmt *Stmt, + const CFGStmt &Stmt, const TypeErasedDataflowAnalysisState &State) { auto *Lattice = llvm::any_cast<typename AnalysisT::Lattice>(&State.Lattice.Value);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits