[PATCH] D68165: [analyzer][MallocChecker][NFC] Split checkPostCall up, deploy CallDescriptionMap
Artem Dergachev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Mar 15 22:18:27 PDT 2020
NoQ accepted this revision.
NoQ added a comment.
Looks wonderful, thanks!
================
Comment at: clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp:355
+ template <bool ShouldFreeOnFail>
+ void checkRealloc(CheckerContext &C, const CallExpr *CE,
+ ProgramStateRef State) const;
----------------
Charusso wrote:
> balazske wrote:
> > The `CHECK_FN` could be used even here?
> > ```
> > template <bool ShouldFreeOnFail>
> > CHECK_FN(checkRealloc)
> > ```
> I think about the opposite, passing around arguments by templates is not cool. They meant to be arguments.
>
> This type of callback simply could be a third `CallDescriptionMap` for future profeness.
> passing around arguments by templates is not cool. They meant to be arguments.
+1! It's accidental that these values are currently known at compile time.
================
Comment at: clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp:1184
+ checkCXXNewOrCXXDelete(C, CE, State);
+
+ checkOwnershipAttr(C, CE, State);
----------------
balazske wrote:
> If these cases are exclusive the code looks better when `else` statements are added?
Yup, or even better, `return`s, because this code is very fragile because it'll do horrible things if we accidentally invoke two callbacks at once.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68165/new/
https://reviews.llvm.org/D68165
More information about the cfe-commits
mailing list