ymandel created this revision. ymandel added reviewers: xazax.hun, gribozavr2. Herald added subscribers: martong, rnkovacs. Herald added a reviewer: NoQ. Herald added a project: All. ymandel requested review of this revision. Herald added a project: clang.
The parameter in question belongs to a function that is only called once. This patch updates the API to use a reference and changes the caller accordingly. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D143735 Files: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp Index: clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp =================================================================== --- clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp +++ clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp @@ -374,7 +374,7 @@ } // User-provided analysis - AC.Analysis.transferTypeErased(&Element, State.Lattice, State.Env); + AC.Analysis.transferTypeErased(Element, State.Lattice, State.Env); // Post processing if (PostVisitCFG) { Index: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h +++ clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h @@ -96,7 +96,7 @@ /// Applies the analysis transfer function for a given control flow graph /// element and type-erased lattice element. - virtual void transferTypeErased(const CFGElement *, TypeErasedLattice &, + virtual void transferTypeErased(const CFGElement &, TypeErasedLattice &, Environment &) = 0; /// Applies the analysis transfer function for a given edge from a CFG block Index: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h +++ clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h @@ -119,7 +119,7 @@ return L1 == L2; } - void transferTypeErased(const CFGElement *Element, TypeErasedLattice &E, + void transferTypeErased(const CFGElement &Element, TypeErasedLattice &E, Environment &Env) final { Lattice &L = llvm::any_cast<Lattice &>(E.Value); static_cast<Derived *>(this)->transfer(Element, L, Env);
Index: clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp =================================================================== --- clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp +++ clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp @@ -374,7 +374,7 @@ } // User-provided analysis - AC.Analysis.transferTypeErased(&Element, State.Lattice, State.Env); + AC.Analysis.transferTypeErased(Element, State.Lattice, State.Env); // Post processing if (PostVisitCFG) { Index: clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h +++ clang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h @@ -96,7 +96,7 @@ /// Applies the analysis transfer function for a given control flow graph /// element and type-erased lattice element. - virtual void transferTypeErased(const CFGElement *, TypeErasedLattice &, + virtual void transferTypeErased(const CFGElement &, TypeErasedLattice &, Environment &) = 0; /// Applies the analysis transfer function for a given edge from a CFG block Index: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h =================================================================== --- clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h +++ clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h @@ -119,7 +119,7 @@ return L1 == L2; } - void transferTypeErased(const CFGElement *Element, TypeErasedLattice &E, + void transferTypeErased(const CFGElement &Element, TypeErasedLattice &E, Environment &Env) final { Lattice &L = llvm::any_cast<Lattice &>(E.Value); static_cast<Derived *>(this)->transfer(Element, L, Env);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits