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
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits