[clang] [analyzer] Use explicit call description mode in MIGChecker (PR #91331)

DonĂ¡t Nagy via cfe-commits cfe-commits at lists.llvm.org
Tue May 7 07:19:28 PDT 2024


================
@@ -46,13 +46,13 @@ class MIGChecker : public Checker<check::PostCall, check::PreStmt<ReturnStmt>,
   // additionally an argument of a MIG routine, the checker keeps track of that
   // information and issues a warning when an error is returned from the
   // respective routine.
-  std::vector<std::pair<CallDescription, unsigned>> Deallocators = {
+  CallDescriptionMap<unsigned> Deallocators = {
 #define CALL(required_args, deallocated_arg, ...)                              \
-  {{{__VA_ARGS__}, required_args}, deallocated_arg}
-      // E.g., if the checker sees a C function 'vm_deallocate' that is
-      // defined on class 'IOUserClient' that has exactly 3 parameters, it knows
-      // that argument #1 (starting from 0, i.e. the second argument) is going
-      // to be consumed in the sense of the MIG consume-on-success convention.
+  {{CDM::SimpleFunc, {__VA_ARGS__}, required_args}, deallocated_arg}
----------------
NagyDonat wrote:

`CDM::SimpleFunc` is used for the sake of consistency with the case of `os_ref_retain` (and because I'm not familiar with this calling convention).

https://github.com/llvm/llvm-project/pull/91331


More information about the cfe-commits mailing list