On Jul 30, 2012, at 1:31 PM, Anna Zaks wrote:

> Author: zaks
> Date: Mon Jul 30 15:31:29 2012
> New Revision: 160991
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=160991&view=rev
> Log:
> [analyzer] Very simple ObjC instance method inlining
> 
> - Retrieves the type of the object/receiver from the state.
> - Binds self during stack setup.
> - Only explores the path on which the method is inlined (no
> bifurcation to explore the path on which the method is not inlined).
> 
> Added:
>    cfe/trunk/test/Analysis/inlining/InlineObjCInstanceMethod.h
>    cfe/trunk/test/Analysis/inlining/InlineObjCInstanceMethod.m
> Modified:
>    cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
>    cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
>    cfe/trunk/lib/StaticAnalyzer/Core/CallEvent.cpp
>    cfe/trunk/lib/StaticAnalyzer/Core/ProgramState.cpp
>    cfe/trunk/lib/StaticAnalyzer/Core/Store.cpp
> 
> 
> -      //  Method = LookupPrivateInstanceMethod(Sel, ClassDecl);
> +const Decl *ObjCMethodCall::getRuntimeDefinition() const {
> +  const ObjCMessageExpr *E = getOriginExpr();
> +  Selector Sel = E->getSelector();
> +  assert(E);
assert goes before its first use.
- fariborz

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

Reply via email to