}
case AF_CXXNew:
case AF_CXXNewArray: {
- if (!Filter.CNewDeleteChecker && !Filter.CNewDeleteLeaksChecker)
+ if (!Filter.CNewDeleteChecker)
return false;
return true;
}
}
}
+void ento::registerNewDeleteLeaksChecker(CheckerManager &mgr) {\r
+ registerCStringCheckerBasic(mgr);\r
+ mgr.registerChecker<MallocChecker>()->Filter.CNewDeleteLeaksChecker = true;\r
+ // We currently treat NewDeleteLeaks checker as a subchecker of NewDelete \r
+ // checker.\r
+ mgr.registerChecker<MallocChecker>()->Filter.CNewDeleteChecker = true;\r
+}\r
+
#define REGISTER_CHECKER(name) \
void ento::register##name(CheckerManager &mgr) {\
registerCStringCheckerBasic(mgr); \
REGISTER_CHECKER(MallocPessimistic)
REGISTER_CHECKER(MallocOptimistic)
REGISTER_CHECKER(NewDeleteChecker)
-REGISTER_CHECKER(NewDeleteLeaksChecker)
REGISTER_CHECKER(MismatchedDeallocatorChecker)
// RUN: %clang_cc1 -analyze -analyzer-checker=core,cplusplus.NewDelete -std=c++11 -fblocks -verify %s
-// RUN: %clang_cc1 -analyze -analyzer-checker=core,cplusplus.NewDelete,alpha.cplusplus.NewDeleteLeaks -DLEAKS -std=c++11 -fblocks -verify %s
+// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.cplusplus.NewDeleteLeaks -DLEAKS -std=c++11 -fblocks -verify %s
#include "Inputs/system-header-simulator-cxx.h"
typedef __typeof__(sizeof(int)) size_t;