[PATCH] D135247: [clang][analyzer] Add stream functions to StdLibraryFunctionsChecker.

Kristóf Umann via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Dec 11 15:06:40 PST 2022


Szelethus added a comment.

The patch looks OK now, I'll get to inspecting the others.

In D135247#3977403 <https://reviews.llvm.org/D135247#3977403>, @balazske wrote:

> The "strange" test failures that showed up earlier were probably caused by a bug that is fixed in the D137722 <https://reviews.llvm.org/D137722>. I just read that this patch is rebased to D137722 <https://reviews.llvm.org/D137722> too, fixed the dependency stack.

Very well!

> There was another problem with circular dependencies (because **StdCLibraryFunctionArgsChecker** had a dependency to StreamChecker, this is removed in the last patch). The checker option must be not a problem, the checker (`StdLibraryFunctionsChecker`) can be disabled (but is normally not because it is an **apiModeling** checker) or the **ModelPOSIX** option turned off independently if `StreamChecker` is enabled or not.

Okay, so the checker behaves OK if `StdLibraryFunctionsChecker` is disabled. As long as it doesn't crash, this is fine, you shouldn't disable it in practice anyways!

> The goal (should work at the end of this patch stack) is that StreamChecker can report all bugs that it can find, and there is no case when both checkers report a bug (in different way). If **ModelPOSIX** is turned off and StreamChecker is enabled, for `fseek` for example no bug is found if stream is NULL, and value of `errno` is just invalidated in all cases (like it works if StreamChecker is disabled too), but the stream state and file position is still checked by StreamChecker for all functions.

This sounds reasonable. It means that no parts of `StdLibraryFunctionsChecker` (including its option) is a "hard" dependency.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D135247



More information about the cfe-commits mailing list