On 05.04.2013 21:55, Jordan Rose wrote:
    if (!Filter.CMallocOptimistic && !Filter.CMallocPessimistic &&
-      !Filter.CNewDeleteChecker)
+      !Filter.CNewDeleteLeaksChecker)
      return;
- if (!isTrackedFamily(C, Sym))
+  const RefState *RS = C.getState()->get<RegionState>(Sym);
+  assert(RS && "cannot leak an untracked symbol");
+  AllocationFamily Family = RS->getAllocationFamily();
+  if (!isTrackedFamily(Family))
      return;
+ // Special case for new and new[]; these are controlled by a separate checker
+  // flag so that they can be selectively disabled.
+  if (Family == AF_CXXNew || Family == AF_CXXNewArray)
+    if (!Filter.CNewDeleteLeaksChecker)
+      return;
We already checked for Filter.CNewDeleteLeaksChecker at the beginning.

Now this works properly just because isTrackedFamily() does not know about CNewDeleteLeaksChecker and returns false.
What about adding bug types at this point?

--
Anton

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to