ymandel added a comment.

Looks great!



================
Comment at: clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp:227
+
+    const VarDecl *Param = *ParamIt;
+    auto &Loc = Env.createStorageLocation(*Param);
----------------
maybe mention in the patch description that it also improves the modeling of 
parameter initialization?


================
Comment at: clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp:236
+      Env.setValue(Loc, *ArgVal);
+    }
   }
----------------
Add an `else` that calls `createValue` on the decl's type, and then sets it, 
like `VisitDeclStmt`?


================
Comment at: clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp:246
+  // analyze the same callee in a different context, and `setStorageLocation`
+  // requires there to not already be a storage location assigned.
+  this->LocToVal = std::move(CalleeEnv.LocToVal);
----------------
Maybe add something like "Conceptually, these maps capture information from the 
local scope, so when popping that scope, we do not propagate the maps".


================
Comment at: clang/unittests/Analysis/FlowSensitive/TransferTest.cpp:3963
 
+TEST(TransferTest, ContextSensitiveSetBothTrueAndFalse) {
+  std::string Code = R"(
----------------
Are there more scenarios testable at this point? e.g
1. 2 layers of callees
2. more than one line of code inside the body?
3. one than one CFG block in the body?

If so, please add tests for those that are supported.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130726

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

Reply via email to