NoQ created this revision.
NoQ added a reviewer: dcoughlin.
Herald added subscribers: cfe-commits, dkrupp, donat.nagy, Szelethus, 
mikhail.ramalho, a.sidorin, szepet, baloghadamsoftware, xazax.hun.
Herald added a project: clang.
NoQ added a comment.

The TODOs for future polishing are:

- Add a second `trackExpressionValue()` visitor to track argument values as 
they're copied around.
- Introduce annotations for deallocator functions so that we no longer had to 
hardcode them and users could annotate their consuming functions.


The checker has already proven to be fairly useful and wanted and doesn't have 
any known false positives, mostly because its positives are usually fairly 
local and there's no room for running into infeasible paths.


Repository:
  rC Clang

https://reviews.llvm.org/D58529

Files:
  clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
  clang/test/Analysis/mig.mm


Index: clang/test/Analysis/mig.mm
===================================================================
--- clang/test/Analysis/mig.mm
+++ clang/test/Analysis/mig.mm
@@ -1,4 +1,4 @@
-// RUN: %clang_analyze_cc1 -w -analyzer-checker=core,alpha.osx.MIG\
+// RUN: %clang_analyze_cc1 -w -analyzer-checker=core,osx.MIG\
 // RUN:                       -analyzer-output=text -fblocks -verify %s
 
 typedef unsigned uint32_t;
Index: clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
===================================================================
--- clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
+++ clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
@@ -703,6 +703,11 @@
   HelpText<"Check for proper uses of Secure Keychain APIs">,
   Documentation<HasDocumentation>;
 
+def MIGChecker : Checker<"MIG">,
+  HelpText<"Find violations of the Mach Interface Generator "
+           "calling convention">,
+  Documentation<NotDocumented>;
+
 def ObjCPropertyChecker : Checker<"ObjCProperty">,
   HelpText<"Check for proper uses of Objective-C properties">,
   Documentation<NotDocumented>;
@@ -811,15 +816,6 @@
   Documentation<NotDocumented>;
 } // end "optin.performance"
 
-let ParentPackage = OSXAlpha in {
-
-def MIGChecker : Checker<"MIG">,
-  HelpText<"Find violations of the Mach Interface Generator "
-           "calling convention">,
-  Documentation<NotDocumented>;
-
-} // end "alpha.osx"
-
 let ParentPackage = CocoaAlpha in {
 
 def IvarInvalidationModeling : Checker<"IvarInvalidationModeling">,


Index: clang/test/Analysis/mig.mm
===================================================================
--- clang/test/Analysis/mig.mm
+++ clang/test/Analysis/mig.mm
@@ -1,4 +1,4 @@
-// RUN: %clang_analyze_cc1 -w -analyzer-checker=core,alpha.osx.MIG\
+// RUN: %clang_analyze_cc1 -w -analyzer-checker=core,osx.MIG\
 // RUN:                       -analyzer-output=text -fblocks -verify %s
 
 typedef unsigned uint32_t;
Index: clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
===================================================================
--- clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
+++ clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
@@ -703,6 +703,11 @@
   HelpText<"Check for proper uses of Secure Keychain APIs">,
   Documentation<HasDocumentation>;
 
+def MIGChecker : Checker<"MIG">,
+  HelpText<"Find violations of the Mach Interface Generator "
+           "calling convention">,
+  Documentation<NotDocumented>;
+
 def ObjCPropertyChecker : Checker<"ObjCProperty">,
   HelpText<"Check for proper uses of Objective-C properties">,
   Documentation<NotDocumented>;
@@ -811,15 +816,6 @@
   Documentation<NotDocumented>;
 } // end "optin.performance"
 
-let ParentPackage = OSXAlpha in {
-
-def MIGChecker : Checker<"MIG">,
-  HelpText<"Find violations of the Mach Interface Generator "
-           "calling convention">,
-  Documentation<NotDocumented>;
-
-} // end "alpha.osx"
-
 let ParentPackage = CocoaAlpha in {
 
 def IvarInvalidationModeling : Checker<"IvarInvalidationModeling">,
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to