steakhal added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp:569-594
+void NullabilityChecker::checkBeginFunction(CheckerContext &C) const {
+  const LocationContext *LCtx = C.getLocationContext();
+  auto AbstractCall = AnyCall::forDecl(LCtx->getDecl());
+  if (!AbstractCall)
+    return;
+
+  ProgramStateRef State = C.getState();
----------------
steakhal wrote:
> steakhal wrote:
> > Uh, the diffing here looks terrible.
> > What you probably want: Fold the `State`s, and if you are done, transition 
> > - but only if we have any parameters.
> > We need to have a single `addTransition()` call if we want a single 
> > execution path modeled in the graph. We probably don't want one path on 
> > which the first parameter's annotation is known; and a separate one where 
> > only the second, etc.
> Shouldn't we only do this for the analysis entrypoints only? (aka. top-level 
> functions)
> I assume this checker already did some modeling of the attributes, hence we 
> have the warnings in the tests.
Please note that each iteration of the loop will overwrite the state you made 
in the previous iteration this way.
Its most likely not what you want.
Because C.getState() will always return the same state no matter the context 
here.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D153017

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

Reply via email to