digraph iCFG { 30 [label="30: DeclStmt \n n$5=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 39]\n n$6=_fun_NSObject_init(n$5:class A *) virtual [line 39]\n *&a:class A *=n$6 [line 39]\n REMOVE_TEMPS(n$5,n$6); [line 39]\n " shape="box"] 30 -> 29 ; 29 [label="29: Message Call: setLast_name: \n n$1=*&a:class A * [line 40]\n n$2=*&a2:class A * [line 40]\n _fun_A_setLast_name:(n$1:class A *,n$2:class A *) virtual [line 40]\n REMOVE_TEMPS(n$1,n$2); [line 40]\n NULLIFY(&a2,false); [line 40]\n " shape="box"] 29 -> 25 ; 28 [label="28: BinaryOperatorStmt: Assign \n n$3=*&self:class A * [line 18]\n n$4=*&last_name:class A * [line 18]\n *n$3._last_name:class A *=n$4 [line 18]\n REMOVE_TEMPS(n$3,n$4); [line 18]\n NULLIFY(&last_name,false); [line 18]\n NULLIFY(&self,false); [line 18]\n APPLY_ABSTRACTION; [line 18]\n " shape="box"] 28 -> 27 ; 27 [label="27: Exit A_setLast_name: \n " color=yellow style=filled] 26 [label="26: Start A_setLast_name: (generated)\nFormals: self:class A * last_name:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n " color=yellow style=filled] 26 -> 28 ; 25 [label="25: Message Call: release \n n$0=*&a:class A * [line 41]\n _fun___objc_release(n$0:class A *) [line 41]\n REMOVE_TEMPS(n$0); [line 41]\n NULLIFY(&a,false); [line 41]\n " shape="box"] 25 -> 24 ; 24 [label="24: Return Stmt \n *&return:int =0 [line 42]\n APPLY_ABSTRACTION; [line 42]\n " shape="box"] 24 -> 23 ; 23 [label="23: Exit test \n " color=yellow style=filled] 22 [label="22: Start test\nFormals: a2:class A *\nLocals: a:class A * \n DECLARE_LOCALS(&return,&a); [line 38]\n NULLIFY(&a,false); [line 38]\n " color=yellow style=filled] 22 -> 30 ; 18 [label="18: Message Call: retain \n n$21=*&name:class A * [line 16]\n n$22=_fun___objc_retain(n$21:class A *) [line 16]\n REMOVE_TEMPS(n$21,n$22); [line 16]\n " shape="box"] 18 -> 17 ; 17 [label="17: Message Call: release \n n$18=*&self:class A * [line 16]\n n$19=*n$18._name:class A * [line 16]\n n$20=_fun___objc_release(n$19:class A *) [line 16]\n REMOVE_TEMPS(n$18,n$19,n$20); [line 16]\n " shape="box"] 17 -> 16 ; 16 [label="16: BinaryOperatorStmt: Assign \n n$16=*&self:class A * [line 16]\n n$17=*&name:class A * [line 16]\n *n$16._name:class A *=n$17 [line 16]\n REMOVE_TEMPS(n$16,n$17); [line 16]\n NULLIFY(&name,false); [line 16]\n NULLIFY(&self,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 16 -> 15 ; 15 [label="15: Exit A_setName: \n " color=yellow style=filled] 14 [label="14: Start A_setName: (generated)\nFormals: self:class A * name:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled] 14 -> 18 ; 13 [label="13: BinaryOperatorStmt: Assign \n n$13=*&self:class A * [line 14]\n n$14=*&child:class A * [line 14]\n n$15=_fun_A_copy(n$14:class A *) virtual [line 14]\n *n$13._child:class A *=n$15 [line 14]\n REMOVE_TEMPS(n$13,n$14,n$15); [line 14]\n NULLIFY(&child,false); [line 14]\n NULLIFY(&self,false); [line 14]\n APPLY_ABSTRACTION; [line 14]\n " shape="box"] 13 -> 12 ; 12 [label="12: Exit A_setChild: \n " color=yellow style=filled] 11 [label="11: Start A_setChild: (generated)\nFormals: self:class A * child:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled] 11 -> 13 ; 10 [label="10: DeclStmt \n n$11=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 27]\n n$12=_fun_NSObject_init(n$11:class A *) virtual [line 27]\n *&other:class A *=n$12 [line 27]\n REMOVE_TEMPS(n$11,n$12); [line 27]\n " shape="box"] 10 -> 5 ; 10 -> 6 ; 9 [label="9: BinaryOperatorStmt: Assign \n n$8=*&other:class A * [line 29]\n n$9=*&self:class A * [line 29]\n n$10=*n$9._name:class A * [line 29]\n *n$8._name:class A *=n$10 [line 29]\n REMOVE_TEMPS(n$8,n$9,n$10); [line 29]\n " shape="box"] 9 -> 8 ; 8 [label="8: BinaryOperatorStmt: Assign \n n$5=*&other:class A * [line 30]\n n$6=*&self:class A * [line 30]\n n$7=*n$6._last_name:class A * [line 30]\n *n$5._last_name:class A *=n$7 [line 30]\n REMOVE_TEMPS(n$5,n$6,n$7); [line 30]\n " shape="box"] 8 -> 7 ; 7 [label="7: BinaryOperatorStmt: Assign \n n$2=*&other:class A * [line 31]\n n$3=*&self:class A * [line 31]\n n$4=*n$3._child:class A * [line 31]\n *n$2._child:class A *=n$4 [line 31]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 31]\n NULLIFY(&self,false); [line 31]\n APPLY_ABSTRACTION; [line 31]\n " shape="box"] 7 -> 4 ; 6 [label="6: Prune (false branch) \n n$1=*&other:class A * [line 28]\n PRUNE((n$1 == 0), false); [line 28]\n REMOVE_TEMPS(n$1); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="invhouse"] 6 -> 4 ; 5 [label="5: Prune (true branch) \n n$1=*&other:class A * [line 28]\n PRUNE((n$1 != 0), true); [line 28]\n REMOVE_TEMPS(n$1); [line 28]\n " shape="invhouse"] 5 -> 9 ; 4 [label="4: + \n " ] 4 -> 3 ; 3 [label="3: Return Stmt \n NULLIFY(&self,false); [line 33]\n n$0=*&other:class A * [line 33]\n *&return:class A *=n$0 [line 33]\n REMOVE_TEMPS(n$0); [line 33]\n NULLIFY(&other,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_copy \n " color=yellow style=filled] 1 [label="1: Start A_copy\nFormals: self:class A *\nLocals: other:class A * \n DECLARE_LOCALS(&return,&other); [line 26]\n NULLIFY(&other,false); [line 26]\n " color=yellow style=filled] 1 -> 10 ; }