diff options
| author | DonĂ¡t Nagy <donat.nagy@ericsson.com> | 2024-05-07 13:06:11 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-07 13:06:11 +0200 |
| commit | 97dd8e3c4f38ef345b01fbbf0a2052c7875ff7e0 (patch) | |
| tree | 43f83cef0cd130876ed23074bcd443f1668d6abc /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 651bdb96b16d4e522f4611b60103234b1f890b24 (diff) | |
[analyzer] Clean up apiModeling.llvm.ReturnValue (#91231)
This commit heavily refactors and simplifies the small and trivial
checker `apiModeling.llvm.ReturnValue`, which is responsible for
modeling the peculiar coding convention that in the LLVM/Clang codebase
certain Error() methods always return true.
Changes included in this commit:
- The call description mode is now specified explicitly (this is not the
most significant change, but it was the original reason for touching
this checker).
- Previously the code provided support for modeling functions that
always return `false`; but there was no need for that, so this commit
hardcodes that the return value is `true`.
- The overcomplicated constraint/state handling logic was simplified.
- The separate `checkEndFunction` callback was removed to simplify the
code. Admittedly this means that the note tag for the "<method> returns
false, breaking the convention" case is placed on the method call
instead of the `return` statement; but that case will _never_ appear in
practice, so this difference is mostly academical.
- The text of the note tags was clarified.
- The descriptions in the header comment and Checkers.td were clarified.
- Some minor cleanup was applied in the associated test file.
This change is very close to NFC because it only affects a hidden
`apiModeling.llvm` checker that's only relevant during the analysis of
the LLVM/Clang codebase, and even there it doesn't affect the normal
behavior of the checker.
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
