xazax.hun added a comment.

This approach looks good to me. Some context: we kept the CFGs lightweight 
because it looks like we did not need to do any extensions for the Clang Static 
Analyzer. I'm glad the dataflow framework can also work with the current 
representation. On the other hand, I think structured bindings in C++ are 
really limited, e.g., we cannot nest them, and it is nowhere near what pattern 
matching can do in other languages like Rust. I do remember seeing papers about 
extending structured bindings in at least some dimensions like nesting. I 
wonder if making the representation more explicit in the CFG as structured 
bindings get more complex will simplify implementations in the future, but that 
is a problem for tomorrow :)



================
Comment at: clang/lib/Analysis/FlowSensitive/Transfer.cpp:191
 
+  // void VisitDeclRefExpr(const DeclRefExpr *S) {
+  //   assert(S->getDecl() != nullptr);
----------------
Nit commented out code.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139544/new/

https://reviews.llvm.org/D139544

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to