Szelethus marked 2 inline comments as done.
Szelethus added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp:995
 
-void MallocChecker::checkBasicAlloc(CheckerContext &C, const CallExpr *CE,
-                                    ProgramStateRef State) const {
-  State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State, AF_Malloc);
-  State = ProcessZeroAllocCheck(C, CE, 0, State);
+void MallocChecker::checkBasicAlloc(const CallEvent &Call,
+                                    CheckerContext &C) const {
----------------
xazax.hun wrote:
> What is the main reason of getting rid of the state parameter? I think this 
> could make using these functions more error prone overall as it would be 
> easier to introduce splits in the exploded graph this way (if we somehow 
> wanted to model a function as successive calls of some other functions).
Refer to @NoQ's 
[[https://reviews.llvm.org/D68165?id=222257#inline-612842|earlier inline]].

> I think this could make using these functions more error prone overall as it 
> would be easier to introduce splits in the exploded graph this way (if we 
> somehow wanted to model a function as successive calls of some other 
> functions).

Why would the removal of a `ProgramStateRef` parameter cause that?


================
Comment at: clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp:1641
 ProgramStateRef MallocChecker::FreeMemAux(
-    CheckerContext &C, const Expr *ArgExpr, const Expr *ParentExpr,
     ProgramStateRef State, bool Hold, bool &IsKnownToBeAllocated,
----------------
xazax.hun wrote:
> In functions where we only use `ArgExpr` to retrieve the corresponding `SVal` 
> we could pass the `SVal` in the first place.
Long term, I plan to find a better value type for the `CallDescriptionMap` 
where information such as this could be retrieved easier, which is why I 
focused on nothing but the task at hand.

While I would like to see `MallocChecker` in a healthier state, at times I find 
the development effort I'm putting into it questionable, so I'll probably stop 
at the point where I can comfortably split it.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D75432



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

Reply via email to