@@ -55,6 +55,7 @@ class DynamicTypePropagation:
55
55
check::PostStmt<CXXNewExpr>,
56
56
check::PreObjCMessage,
57
57
check::PostObjCMessage > {
58
+
58
59
const ObjCObjectType *getObjectTypeForAllocAndNew (const ObjCMessageExpr *MsgE,
59
60
CheckerContext &C) const ;
60
61
@@ -69,8 +70,8 @@ class DynamicTypePropagation:
69
70
mutable std::unique_ptr<BugType> ObjCGenericsBugType;
70
71
void initBugType () const {
71
72
if (!ObjCGenericsBugType)
72
- ObjCGenericsBugType.reset (
73
- new BugType ( this , " Generics" , categories::CoreFoundationObjectiveC));
73
+ ObjCGenericsBugType.reset (new BugType (
74
+ GenericCheckName , " Generics" , categories::CoreFoundationObjectiveC));
74
75
}
75
76
76
77
class GenericsBugVisitor : public BugReporterVisitor {
@@ -108,6 +109,7 @@ class DynamicTypePropagation:
108
109
109
110
// / This value is set to true, when the Generics checker is turned on.
110
111
DefaultBool CheckGenerics;
112
+ CheckerNameRef GenericCheckName;
111
113
};
112
114
113
115
bool isObjCClassType (QualType Type) {
@@ -1101,6 +1103,7 @@ PathDiagnosticPieceRef DynamicTypePropagation::GenericsBugVisitor::VisitNode(
1101
1103
void ento::registerObjCGenericsChecker (CheckerManager &mgr) {
1102
1104
DynamicTypePropagation *checker = mgr.getChecker <DynamicTypePropagation>();
1103
1105
checker->CheckGenerics = true ;
1106
+ checker->GenericCheckName = mgr.getCurrentCheckerName ();
1104
1107
}
1105
1108
1106
1109
bool ento::shouldRegisterObjCGenericsChecker (const CheckerManager &mgr) {
0 commit comments