@@ -55,6 +55,7 @@ class DynamicTypePropagation:
5555 check::PostStmt<CXXNewExpr>,
5656 check::PreObjCMessage,
5757 check::PostObjCMessage > {
58+
5859 const ObjCObjectType *getObjectTypeForAllocAndNew (const ObjCMessageExpr *MsgE,
5960 CheckerContext &C) const ;
6061
@@ -69,8 +70,8 @@ class DynamicTypePropagation:
6970 mutable std::unique_ptr<BugType> ObjCGenericsBugType;
7071 void initBugType () const {
7172 if (!ObjCGenericsBugType)
72- ObjCGenericsBugType.reset (
73- new BugType ( this , " Generics" , categories::CoreFoundationObjectiveC));
73+ ObjCGenericsBugType.reset (new BugType (
74+ GenericCheckName , " Generics" , categories::CoreFoundationObjectiveC));
7475 }
7576
7677 class GenericsBugVisitor : public BugReporterVisitor {
@@ -108,6 +109,7 @@ class DynamicTypePropagation:
108109
109110 // / This value is set to true, when the Generics checker is turned on.
110111 DefaultBool CheckGenerics;
112+ CheckerNameRef GenericCheckName;
111113};
112114
113115bool isObjCClassType (QualType Type) {
@@ -1101,6 +1103,7 @@ PathDiagnosticPieceRef DynamicTypePropagation::GenericsBugVisitor::VisitNode(
11011103void ento::registerObjCGenericsChecker (CheckerManager &mgr) {
11021104 DynamicTypePropagation *checker = mgr.getChecker <DynamicTypePropagation>();
11031105 checker->CheckGenerics = true ;
1106+ checker->GenericCheckName = mgr.getCurrentCheckerName ();
11041107}
11051108
11061109bool ento::shouldRegisterObjCGenericsChecker (const CheckerManager &mgr) {
0 commit comments