[PATCH] D152269: [StaticAnalyzer] Fix false negative on NilArgChecker when creating literal object

Balázs Benics via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 6 08:28:40 PDT 2023


steakhal added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp:151-164
+  auto ArgSVal = C.getSVal(E).getAs<DefinedOrUnknownSVal>();
+  if (!ArgSVal)
+    return;
+
+  ProgramStateRef StNonNull, StNull;
+  std::tie(StNonNull, StNull) = State->assume(*ArgSVal);
+
----------------
steakhal wrote:
> This means that we would raise an issue if `ArgSVal` might be null. We usually warn if we are sure there is a bug, aka. if it must be null. Consequently, the condition should be rather `StNull && !StNonNull` instead of just `StNull`.
Ah I see now. My bad, thats the whole point of this :D


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D152269



More information about the cfe-commits mailing list