xazax.hun accepted this revision.
xazax.hun added inline comments.
This revision is now accepted and ready to land.


================
Comment at: 
clang/unittests/Analysis/FlowSensitive/ChromiumCheckModelTest.cpp:122
+  void transfer(const Stmt *S, NoopLattice &, Environment &Env) {
+    M.transfer(S, Env);
+  }
----------------
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. 


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

Reply via email to