diff options
author | Ben Shi <2283975856@qq.com> | 2023-12-30 14:49:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-30 14:49:42 +0800 |
commit | 925ff9e1a218720cd61bd7c9f5f85ded4ecbf9a1 (patch) | |
tree | f2013cd3dae3cbd25ecae255ecf2381810d7f4c6 /clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp | |
parent | 69bc3718353e7dbb83e5f1fd2695d5eb6e6827fd (diff) | |
download | llvm-925ff9e1a218720cd61bd7c9f5f85ded4ecbf9a1.zip llvm-925ff9e1a218720cd61bd7c9f5f85ded4ecbf9a1.tar.gz llvm-925ff9e1a218720cd61bd7c9f5f85ded4ecbf9a1.tar.bz2 |
[clang][analyzer] Support 'fflush' in the StdLibraryFunctionsChecker (#76557)
Co-authored-by: Balazs Benics <benicsbalazs@gmail.com>
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp index fffcaf7..4ca49b9 100644 --- a/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp @@ -2244,6 +2244,14 @@ void StdLibraryFunctionsChecker::initFunctionSummaries( .ArgConstraint(NotNull(ArgNo(0))) .ArgConstraint(NotNull(ArgNo(1)))); + // int fflush(FILE *stream); + addToFunctionSummaryMap( + "fflush", Signature(ArgTypes{FilePtrTy}, RetType{IntTy}), + Summary(NoEvalCall) + .Case(ReturnsZero, ErrnoMustNotBeChecked, GenericSuccessMsg) + .Case({ReturnValueCondition(WithinRange, SingleValue(EOFv))}, + ErrnoNEZeroIrrelevant, GenericFailureMsg)); + // long ftell(FILE *stream); // From 'The Open Group Base Specifications Issue 7, 2018 edition': // "The ftell() function shall not change the setting of errno if |