diff options
author | Ben Shi <2283975856@qq.com> | 2024-01-25 09:23:40 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-25 09:23:40 +0800 |
commit | b7f986d987edd50f8b16ae90d38358b01f0272ac (patch) | |
tree | 42e1fd81a1b6596782935b4d9c626ce9a770a64e /clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp | |
parent | 795090739cf3b295be750dfba0af2ba993e60cdd (diff) | |
download | llvm-b7f986d987edd50f8b16ae90d38358b01f0272ac.zip llvm-b7f986d987edd50f8b16ae90d38358b01f0272ac.tar.gz llvm-b7f986d987edd50f8b16ae90d38358b01f0272ac.tar.bz2 |
[clang][analyzer] Improve modeling of 'execv' and 'execvp' in StdLibraryFunctionsChecker (#78930)
These functions always return -1 and set 'errno'.
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp index fcd907a..61bf3c8 100644 --- a/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp @@ -3002,7 +3002,7 @@ void StdLibraryFunctionsChecker::initFunctionSummaries( "execv", Signature(ArgTypes{ConstCharPtrTy, CharPtrConstPtr}, RetType{IntTy}), Summary(NoEvalCall) - .Case(ReturnsMinusOne, ErrnoIrrelevant) + .Case(ReturnsMinusOne, ErrnoNEZeroIrrelevant) .ArgConstraint(NotNull(ArgNo(0)))); // int execvp(const char *file, char *const argv[]); @@ -3010,7 +3010,7 @@ void StdLibraryFunctionsChecker::initFunctionSummaries( "execvp", Signature(ArgTypes{ConstCharPtrTy, CharPtrConstPtr}, RetType{IntTy}), Summary(NoEvalCall) - .Case(ReturnsMinusOne, ErrnoIrrelevant) + .Case(ReturnsMinusOne, ErrnoNEZeroIrrelevant) .ArgConstraint(NotNull(ArgNo(0)))); // int getopt(int argc, char * const argv[], const char *optstring); |