================
@@ -196,6 +196,20 @@ void CallGraph::addNodeForDecl(Decl* D, bool IsGlobal) {
}
}
+void CallGraph::addNodesForVarInit(VarDecl *VD) {
+ // Only variables with static or thread storage duration need this: their
+ // initializers run with no function caller and are not reached by any body
+ // walk, so a lambda or block defined in one would be missed. Local variables
+ // are covered by the enclosing body walk, and parameter default arguments by
+ // CGBuilder at call sites. Attach discovered calls to the root.
+ if (!VD->hasGlobalStorage())
+ return;
+ if (Expr *Init = VD->getInit()) {
+ CGBuilder builder(this, Root);
+ builder.Visit(Init);
----------------
steakhal wrote:
```suggestion
CGBuilder{this, Root}.Visit(Init);
```
https://github.com/llvm/llvm-project/pull/206458
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits