ymandel marked an inline comment as done. ymandel added a comment. Thanks for the review!
================ Comment at: clang/unittests/Analysis/FlowSensitive/ChromiumCheckModelTest.cpp:122 + void transfer(const Stmt *S, NoopLattice &, Environment &Env) { + M.transfer(S, Env); + } ---------------- xazax.hun wrote: > I wonder whether the models should actually be called by the framework at > some point. > E.g. imagine the following scenario: > ``` > void f() > { > std::optional<int> o(5); > if (o) > { > // dead code here; > } > } > ``` > > In an ideal case, an analysis could use the `std::optional` modeling to > realize that the code in the `if` statement is dead and use this fact to > improve its precision. Explicitly request the modeling in the transfer > function works OK when we only have a couple things to model. But it might > not scale in the future. When we model dozens of standard types and functions > we would not want all the analysis clients to invoke all the transfers for > all the models individually. Agreed. It seems similar the problems that motivated DLLs back in the day. there's clearly a lot to be worked out here in terms of how best to support composition. It's probably worth a RFC or somesuch to discuss in more depth. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D121797/new/ https://reviews.llvm.org/D121797 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits