diff options
author | Balazs Benics <balazs.benics@sigmatechnology.se> | 2021-11-19 18:32:13 +0100 |
---|---|---|
committer | Balazs Benics <balazs.benics@sigmatechnology.se> | 2021-11-19 18:32:13 +0100 |
commit | 9ad0a90baa8ca8067fe65086056fffd083c86796 (patch) | |
tree | 942fbafc3791a78d85a2623be580e8cbb7832b48 | |
parent | f18da190b0dba817d33ccd7727537f12304d8125 (diff) | |
download | llvm-9ad0a90baa8ca8067fe65086056fffd083c86796.tar.gz |
[analyzer][NFC] Demonstrate the use of CallDescriptionSet
Reviewed By: martong, xazax.hun
Differential Revision: https://reviews.llvm.org/D113592
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp b/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp index ebd384a5a5b4..2c210fb6cdb9 100644 --- a/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp @@ -534,10 +534,12 @@ void CFNumberChecker::checkPreStmt(const CallExpr *CE, namespace { class CFRetainReleaseChecker : public Checker<check::PreCall> { mutable APIMisuse BT{this, "null passed to CF memory management function"}; - CallDescription CFRetain{"CFRetain", 1}, - CFRelease{"CFRelease", 1}, - CFMakeCollectable{"CFMakeCollectable", 1}, - CFAutorelease{"CFAutorelease", 1}; + const CallDescriptionSet ModelledCalls = { + {"CFRetain", 1}, + {"CFRelease", 1}, + {"CFMakeCollectable", 1}, + {"CFAutorelease", 1}, + }; public: void checkPreCall(const CallEvent &Call, CheckerContext &C) const; @@ -551,8 +553,7 @@ void CFRetainReleaseChecker::checkPreCall(const CallEvent &Call, return; // Check if we called CFRetain/CFRelease/CFMakeCollectable/CFAutorelease. - - if (!matchesAny(Call, CFRetain, CFRelease, CFMakeCollectable, CFAutorelease)) + if (!ModelledCalls.contains(Call)) return; // Get the argument's value. |