malhar1995 added inline comments.

================
Comment at: lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp:2521-2523
+  deriveAllocLocation(Ctx, sym);
+  if (!AllocBinding)
+    deriveParamLocation(Ctx, sym);
----------------
I'm not sure what difference it will make if I change the ordering of the 
invocations of `deriveAllocLocation` and 'deriveParamLocation`.


================
Comment at: lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp:2683
 
+  DefaultBool PerformCalleeSideParameterChecking;
+
----------------
This might be used in the future in case callee side parameter checking is 
added for Core Foundation and Objective-C objects.


================
Comment at: lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp:3960-3971
+  for (unsigned idx = 0, e = FD->getNumParams(); idx != e; ++idx) {
+    const ParmVarDecl *Param = FD->getParamDecl(idx);
+    SymbolRef Sym = state->getSVal(state->getRegion(Param, 
LCtx)).getAsSymbol();
+
+    QualType Ty = Param->getType();
+    if (hasRCAnnotation(Param, "rc_ownership_consumed"))
+      state = setRefBinding(state, Sym,
----------------
Getting function summary and checking for `ArgEffects` doesn't seem like an 
option to me as currently there is no way to differentiate between Core 
Foundation and Generalized objects just by looking at their ArgEffects.

However, this loop results in `check-clang-analysis` failure in 
`retain-release.m` on lines `1140` and `2237`.


Repository:
  rL LLVM

https://reviews.llvm.org/D36441



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to