Lines Matching refs:MK
77 static bool misuseCausesCrash(MisuseKind MK) {
78 return MK == MK_Dereference;
137 bool shouldWarnAbout(ObjectKind OK, MisuseKind MK) const {
143 OK.StdKind != SK_SmartPtr || MK == MK_Dereference);
153 const CXXRecordDecl *RD, MisuseKind MK) const;
160 const CXXRecordDecl *RD, MisuseKind MK)
161 : Chk(Chk), Region(R), RD(RD), MK(MK), Found(false) {}
184 const MisuseKind MK;
212 const CXXRecordDecl *RD, MisuseKind MK,
218 CheckerContext &C, MisuseKind MK) const;
304 if (MK == MK_Dereference) {
306 Chk.explainObject(OS, Region, RD, MK);
317 Chk.explainObject(OS, Region, RD, MK);
322 Chk.explainObject(OS, Region, RD, MK);
351 const CXXRecordDecl *RD, MisuseKind MK,
359 if (MK == MK_Dereference && OK.StdKind != SK_SmartPtr)
360 MK = MK_FunCall;
362 if (!RS || !shouldWarnAbout(OK, MK)
373 if (misuseCausesCrash(MK)) {
381 ExplodedNode *N = reportBug(Region, RD, C, MK);
393 MisuseKind MK) const {
394 if (ExplodedNode *N = misuseCausesCrash(MK) ? C.generateErrorNode()
407 switch(MK) {
410 explainObject(OS, Region, RD, MK);
414 explainObject(OS, Region, RD, MK);
419 explainObject(OS, Region, RD, MK);
424 explainObject(OS, Region, RD, MK);
431 R->addVisitor(std::make_unique<MovedBugVisitor>(*this, Region, RD, MK));
572 const CXXRecordDecl *RD, MisuseKind MK) const {
587 if (MK != MK_Dereference)
612 MisuseKind MK = CtorDec->isMoveConstructor() ? MK_Move : MK_Copy;
613 modelUse(State, ArgRegion, RD, MK, C);
662 MisuseKind MK =
664 modelUse(State, ArgRegion, RD, MK, C);