[clang] [clang][analyzer] Improve 'errno' modeling of 'mkdtemp' (PR #76671)
Balázs Kéri via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 3 01:03:18 PST 2024
================
@@ -2511,10 +2511,12 @@ void StdLibraryFunctionsChecker::initFunctionSummaries(
.ArgConstraint(NotNull(ArgNo(0))));
// char *mkdtemp(char *template);
- // FIXME: Improve for errno modeling.
addToFunctionSummaryMap(
"mkdtemp", Signature(ArgTypes{CharPtrTy}, RetType{CharPtrTy}),
- Summary(NoEvalCall).ArgConstraint(NotNull(ArgNo(0))));
+ Summary(NoEvalCall)
+ .Case({NotNull(Ret)}, ErrnoMustNotBeChecked, GenericSuccessMsg)
----------------
balazske wrote:
It should work in this way (returned value is the same as "template").
```suggestion
.Case({ReturnValueCondition(BO_EQ, ArgNo(0))},
ErrnoMustNotBeChecked, GenericSuccessMsg)
```
https://github.com/llvm/llvm-project/pull/76671
More information about the cfe-commits
mailing list