martong added inline comments.

================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:418
+    if (FailureSt && !SuccessSt) {
+      C.addTransition(FailureSt);
+      if (ExplodedNode *N = C.generateErrorNode(FailureSt))
----------------
balazske wrote:
> Is this `addTransition` needed? It would be OK to call `generateErrorNode` 
> with `State`. Even if not, adding the transition before should not be needed?
Yes, you are right it is superfluous, I removed it.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:688
                   // locale-specific return values.
                   .Case({ArgumentCondition(0U, WithinRange, {{128, 
UCharMax}})})
                   .Case({ArgumentCondition(0U, OutOfRange,
----------------
balazske wrote:
> Why is this `{128, UCharMax}` here and at the next entry needed?
This is the local specific range , [128, 255]. There are characters like `ä` 
which we don't know if they are treated as an alphanumerical character or not. 
We can't really tell how a specific libc implementation classifies them. On the 
other hand, with English letters we can state the classes confidently.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp:696
+                  .ArgConstraint(ArgumentCondition(
+                      0U, WithinRange, {{EOFv, EOFv}, {0, UCharMax}}))},
       },
----------------
balazske wrote:
> Is this `ArgConstraint` intentionally added only to `isalnum`?
> 
Yes, I wanted to create first the infrastructure and then later to add all 
these constraints to the rest of the summaries with new tests.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73898



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

Reply via email to