[clang] Remove allocating blocks

Reviewed By: ddino

Differential Revision: D6136464

fbshipit-source-id: 850278a
master
Dulma Churchill 7 years ago committed by Facebook Github Bot
parent 7ef191f4be
commit e7907032bf

@ -98,57 +98,6 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
false
(* This function add in tenv a class representing an objc block. *)
(* An object of this class has type:*)
(* name_of_block |-> {capture_var1:typ_of_capture_var1,... capture_varn:typ_of_capture_varn} *)
(* It allocates one element and sets its fields with the current values of the *)
(* captured variables. This allocated instance
is used to detect retain cycles involving the block.*)
let allocate_block trans_state block_name captured_vars loc =
let tenv = trans_state.context.CContext.tenv in
let procdesc = trans_state.context.CContext.procdesc in
let procname = Procdesc.get_proc_name procdesc in
let block_typename = Typ.Name.Objc.from_string (String.capitalize (block_name ^ "Class")) in
let mk_field_from_captured_var (var, typ) =
let vname = Pvar.get_name var in
let fname = CGeneral_utils.mk_class_field_name block_typename (Mangled.to_string vname) in
let item_annot = Annot.Item.empty in
(fname, typ, item_annot)
in
let fields = List.map ~f:mk_field_from_captured_var captured_vars in
L.(debug Capture Verbose) "Block %s field:@\n" block_name ;
List.iter
~f:(fun (fn, _, _) ->
L.(debug Capture Verbose) "-----> field: '%s'@\n" (Typ.Fieldname.to_string fn))
fields ;
ignore (Tenv.mk_struct tenv ~fields block_typename) ;
let block_type = Typ.mk (Typ.Tstruct block_typename) in
let trans_res =
CTrans_utils.alloc_trans trans_state ~alloc_builtin:BuiltinDecl.__objc_alloc_no_fail loc
(Ast_expressions.dummy_stmt_info ())
block_type
in
let id_block = match trans_res.exps with [(Exp.Var id, _)] -> id | _ -> assert false in
let block_var = Pvar.mk_tmp "_block_heap_var_" procname in
let declare_block_local =
Sil.Declare_locals ([(block_var, CType.add_pointer_to_typ block_type)], loc)
in
let set_instr = Sil.Store (Exp.Lvar block_var, block_type, Exp.Var id_block, loc) in
let create_field_exp (var, typ) =
let id = Ident.create_fresh Ident.knormal in
(id, Sil.Load (id, Exp.Lvar var, typ, loc))
in
let ids, captured_instrs = List.unzip (List.map ~f:create_field_exp captured_vars) in
let fields_ids = List.zip_exn fields ids in
let set_fields =
List.map
~f:(fun ((f, t, _), id) ->
Sil.Store (Exp.Lfield (Exp.Var id_block, f, block_type), t, Exp.Var id, loc))
fields_ids
in
declare_block_local :: trans_res.instrs @ [set_instr] @ captured_instrs @ set_fields
(* From a list of expression extract blocks from tuples and *)
(* returns block names and assignment to temp vars *)
let extract_block_from_tuple procname exps loc =
@ -2711,11 +2660,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
List.map2_exn ~f:(fun id (pvar, typ) -> (Exp.Var id, pvar, typ)) ids captureds
in
let closure = Exp.Closure {name= block_pname; captured_vars} in
let block_name = Typ.Procname.to_string block_pname in
let static_vars = CContext.static_vars_for_block context block_pname in
let captured_static_vars = captureds @ static_vars in
let alloc_block_instr = allocate_block trans_state block_name captured_static_vars loc in
{empty_res_trans with instrs= alloc_block_instr @ instrs; exps= [(closure, typ)]}
{empty_res_trans with instrs; exps= [(closure, typ)]}
| _ ->
assert false

@ -29,7 +29,6 @@ codetoanalyze/objc/shared/assertions/NSAssert_example.m, test2, 1, MEMORY_LEAK,
codetoanalyze/objc/shared/block/BlockVar.m, BlockVar_blockPostBad, 5, NULL_DEREFERENCE, [start of procedure blockPostBad,start of procedure block,return from a call to objc_blockBlockVar_blockPostBad_2]
codetoanalyze/objc/shared/block/BlockVar.m, BlockVar_capturedNullDeref, 5, NULL_DEREFERENCE, [start of procedure capturedNullDeref,start of procedure block]
codetoanalyze/objc/shared/block/BlockVar.m, BlockVar_navigateToURLInBackground, 8, NULL_DEREFERENCE, [start of procedure navigateToURLInBackground,start of procedure block,start of procedure test,return from a call to BlockVar_test,return from a call to objc_blockBlockVar_navigateToURLInBackground_1,Condition is true]
codetoanalyze/objc/shared/block/block.m, BlockMain, 0, Assert_failure, [start of procedure BlockMain()]
codetoanalyze/objc/shared/block/block.m, main1, 31, DIVIDE_BY_ZERO, [start of procedure main1(),start of procedure block,start of procedure block,return from a call to objc_blockobjc_blockmain1_2_3,return from a call to objc_blockmain1_2,start of procedure block,return from a call to objc_blockmain1_1]
codetoanalyze/objc/shared/block/block_no_args.m, My_manager_m, 10, NULL_DEREFERENCE, [start of procedure m,start of procedure block,return from a call to objc_blockMy_manager_m_1,Condition is true]
codetoanalyze/objc/shared/block/block_release.m, My_manager_blockReleaseTODO, 5, MEMORY_LEAK, [start of procedure blockReleaseTODO]

@ -41,11 +41,11 @@ digraph iCFG {
"capture#A#instance.d411336575e4bf632a1828f5f5979726_2" [label="2: Exit A_capture \n " color=yellow style=filled]
"capture#A#instance.d411336575e4bf632a1828f5f5979726_3" [label="3: Message Call: sHandler: \n n$0=*&self:A* [line 47, column 4]\n n$1=*n$0._b:B* [line 47, column 4]\n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$6); [line 47, column 16]\n n$5=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockA_capture_1Class):unsigned long) [line 47, column 16]\n *&0$?%__sil_tmp_block_heap_var_n$6:Objc_blockA_capture_1Class=n$5 [line 47, column 16]\n n$7=*&self:A* [line 47, column 16]\n *n$5.self:A*=n$7 [line 47, column 16]\n n$2=*&self:A* [line 47, column 16]\n n$8=*&objc_blockA_capture_1:_fn_(*) [line 47, column 3]\n _fun_B_sHandler:(n$1:B*,n$8:_fn_(*),n$2:_fn_(*)) virtual [line 47, column 3]\n " shape="box"]
"capture#A#instance.d411336575e4bf632a1828f5f5979726_3" [label="3: Message Call: sHandler: \n n$0=*&self:A* [line 47, column 4]\n n$1=*n$0._b:B* [line 47, column 4]\n n$2=*&self:A* [line 47, column 16]\n n$5=*&objc_blockA_capture_1:_fn_(*) [line 47, column 3]\n _fun_B_sHandler:(n$1:B*,n$5:_fn_(*),n$2:_fn_(*)) virtual [line 47, column 3]\n " shape="box"]
"capture#A#instance.d411336575e4bf632a1828f5f5979726_3" -> "capture#A#instance.d411336575e4bf632a1828f5f5979726_2" ;
"capture#A#instance.d411336575e4bf632a1828f5f5979726_4" [label="4: BinaryOperatorStmt: Assign \n n$9=*&self:A* [line 46, column 3]\n n$10=_fun___objc_alloc_no_fail(sizeof(t=B):unsigned long) [line 46, column 8]\n *n$9._b:B*=n$10 [line 46, column 3]\n " shape="box"]
"capture#A#instance.d411336575e4bf632a1828f5f5979726_4" [label="4: BinaryOperatorStmt: Assign \n n$6=*&self:A* [line 46, column 3]\n n$7=_fun___objc_alloc_no_fail(sizeof(t=B):unsigned long) [line 46, column 8]\n *n$6._b:B*=n$7 [line 46, column 3]\n " shape="box"]
"capture#A#instance.d411336575e4bf632a1828f5f5979726_4" -> "capture#A#instance.d411336575e4bf632a1828f5f5979726_3" ;

@ -11,7 +11,7 @@ digraph iCFG {
"test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_3" -> "test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_2" ;
"test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_4" [label="4: Call (_fun_objc_blockA_test_1) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$4); [line 20, column 3]\n n$3=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockA_test_1Class):unsigned long) [line 20, column 3]\n *&0$?%__sil_tmp_block_heap_var_n$4:Objc_blockA_test_1Class=n$3 [line 20, column 3]\n n$5=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test_sharedInstance:objc_object* [line 20, column 3]\n *n$3.A_test_sharedInstance:objc_object*=n$5 [line 20, column 3]\n (_fun_objc_blockA_test_1)() [line 20, column 3]\n " shape="box"]
"test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_4" [label="4: Call (_fun_objc_blockA_test_1) \n (_fun_objc_blockA_test_1)() [line 20, column 3]\n " shape="box"]
"test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_4" -> "test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_3" ;
@ -33,7 +33,7 @@ digraph iCFG {
"test_leak#A#class.8240788aa53244827857be0e92d27671_2" [label="2: Exit A_test_leak \n " color=yellow style=filled]
"test_leak#A#class.8240788aa53244827857be0e92d27671_3" [label="3: Call (_fun_objc_blockA_test_leak_2) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$9); [line 30, column 3]\n n$8=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockA_test_leak_2Class):unsigned long) [line 30, column 3]\n *&0$?%__sil_tmp_block_heap_var_n$9:Objc_blockA_test_leak_2Class=n$8 [line 30, column 3]\n n$10=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test_leak_sharedInstance:objc_object* [line 30, column 3]\n *n$8.A_test_leak_sharedInstance:objc_object*=n$10 [line 30, column 3]\n (_fun_objc_blockA_test_leak_2)() [line 30, column 3]\n " shape="box"]
"test_leak#A#class.8240788aa53244827857be0e92d27671_3" [label="3: Call (_fun_objc_blockA_test_leak_2) \n (_fun_objc_blockA_test_leak_2)() [line 30, column 3]\n " shape="box"]
"test_leak#A#class.8240788aa53244827857be0e92d27671_3" -> "test_leak#A#class.8240788aa53244827857be0e92d27671_2" ;
@ -44,7 +44,7 @@ digraph iCFG {
"objc_blockA_test_leak_2.5b3de3f9ef0695311853bace3ed320b8_2" [label="2: Exit objc_blockA_test_leak_2 \n " color=yellow style=filled]
"objc_blockA_test_leak_2.5b3de3f9ef0695311853bace3ed320b8_3" [label="3: BinaryOperatorStmt: Assign \n n$6=_fun___objc_alloc_no_fail(sizeof(t=A):unsigned long) [line 31, column 23]\n n$7=_fun_A_init(n$6:A*) virtual [line 31, column 22]\n *&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test_leak_sharedInstance:objc_object*=n$7 [line 31, column 5]\n " shape="box"]
"objc_blockA_test_leak_2.5b3de3f9ef0695311853bace3ed320b8_3" [label="3: BinaryOperatorStmt: Assign \n n$3=_fun___objc_alloc_no_fail(sizeof(t=A):unsigned long) [line 31, column 23]\n n$4=_fun_A_init(n$3:A*) virtual [line 31, column 22]\n *&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test_leak_sharedInstance:objc_object*=n$4 [line 31, column 5]\n " shape="box"]
"objc_blockA_test_leak_2.5b3de3f9ef0695311853bace3ed320b8_3" -> "objc_blockA_test_leak_2.5b3de3f9ef0695311853bace3ed320b8_2" ;
@ -55,15 +55,15 @@ digraph iCFG {
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_2" [label="2: Exit A_test2 \n " color=yellow style=filled]
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_3" [label="3: Return Stmt \n n$11=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test2_sharedInstance:objc_object* [line 44, column 10]\n *&return:objc_object*=n$11 [line 44, column 3]\n " shape="box"]
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_3" [label="3: Return Stmt \n n$5=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test2_sharedInstance:objc_object* [line 44, column 10]\n *&return:objc_object*=n$5 [line 44, column 3]\n " shape="box"]
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_3" -> "test2#A#class.ce50cb13c3345decc567dd4eb6124604_2" ;
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_4" [label="4: Call (_fun_objc_blockA_test2_3) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$14); [line 39, column 3]\n n$13=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockA_test2_3Class):unsigned long) [line 39, column 3]\n *&0$?%__sil_tmp_block_heap_var_n$14:Objc_blockA_test2_3Class=n$13 [line 39, column 3]\n n$15=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test2_sharedInstance:objc_object* [line 39, column 3]\n *n$13.A_test2_sharedInstance:objc_object*=n$15 [line 39, column 3]\n (_fun_objc_blockA_test2_3)() [line 39, column 3]\n " shape="box"]
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_4" [label="4: Call (_fun_objc_blockA_test2_3) \n (_fun_objc_blockA_test2_3)() [line 39, column 3]\n " shape="box"]
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_4" -> "test2#A#class.ce50cb13c3345decc567dd4eb6124604_3" ;
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_5" [label="5: BinaryOperatorStmt: Assign \n n$16=_fun___objc_alloc_no_fail(sizeof(t=A):unsigned long) [line 38, column 21]\n n$17=_fun_A_init(n$16:A*) virtual [line 38, column 20]\n *&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test2_sharedInstance:objc_object*=n$17 [line 38, column 3]\n " shape="box"]
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_5" [label="5: BinaryOperatorStmt: Assign \n n$7=_fun___objc_alloc_no_fail(sizeof(t=A):unsigned long) [line 38, column 21]\n n$8=_fun_A_init(n$7:A*) virtual [line 38, column 20]\n *&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test2_sharedInstance:objc_object*=n$8 [line 38, column 3]\n " shape="box"]
"test2#A#class.ce50cb13c3345decc567dd4eb6124604_5" -> "test2#A#class.ce50cb13c3345decc567dd4eb6124604_4" ;
@ -74,7 +74,7 @@ digraph iCFG {
"objc_blockA_test2_3.d73da2e84cb701fb03b2fbe656a01a1b_2" [label="2: Exit objc_blockA_test2_3 \n " color=yellow style=filled]
"objc_blockA_test2_3.d73da2e84cb701fb03b2fbe656a01a1b_3" [label="3: DeclStmt \n n$12=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test2_sharedInstance:objc_object* [line 41, column 12]\n *&p:objc_object*=n$12 [line 41, column 5]\n " shape="box"]
"objc_blockA_test2_3.d73da2e84cb701fb03b2fbe656a01a1b_3" [label="3: DeclStmt \n n$6=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test2_sharedInstance:objc_object* [line 41, column 12]\n *&p:objc_object*=n$6 [line 41, column 5]\n " shape="box"]
"objc_blockA_test2_3.d73da2e84cb701fb03b2fbe656a01a1b_3" -> "objc_blockA_test2_3.d73da2e84cb701fb03b2fbe656a01a1b_2" ;
@ -85,11 +85,11 @@ digraph iCFG {
"test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_2" [label="2: Exit A_test3 \n " color=yellow style=filled]
"test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_3" [label="3: Return Stmt \n n$18=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test3_i:int [line 55, column 10]\n *&return:int=n$18 [line 55, column 3]\n " shape="box"]
"test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_3" [label="3: Return Stmt \n n$9=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test3_i:int [line 55, column 10]\n *&return:int=n$9 [line 55, column 3]\n " shape="box"]
"test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_3" -> "test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_2" ;
"test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_4" [label="4: Call (_fun_objc_blockA_test3_4) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$21); [line 50, column 3]\n n$20=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockA_test3_4Class):unsigned long) [line 50, column 3]\n *&0$?%__sil_tmp_block_heap_var_n$21:Objc_blockA_test3_4Class=n$20 [line 50, column 3]\n n$22=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test3_i:int [line 50, column 3]\n *n$20.A_test3_i:int=n$22 [line 50, column 3]\n (_fun_objc_blockA_test3_4)() [line 50, column 3]\n " shape="box"]
"test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_4" [label="4: Call (_fun_objc_blockA_test3_4) \n (_fun_objc_blockA_test3_4)() [line 50, column 3]\n " shape="box"]
"test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_4" -> "test3#A#class.041e0eaf033ae8cfa2af48253dfb07ee_3" ;
@ -100,7 +100,7 @@ digraph iCFG {
"objc_blockA_test3_4.645dc6f18a9ea7bd77a195ea083890a4_2" [label="2: Exit objc_blockA_test3_4 \n " color=yellow style=filled]
"objc_blockA_test3_4.645dc6f18a9ea7bd77a195ea083890a4_3" [label="3: UnaryOperator \n n$19=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test3_i:int [line 52, column 5]\n *&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test3_i:int=(n$19 + 1) [line 52, column 5]\n " shape="box"]
"objc_blockA_test3_4.645dc6f18a9ea7bd77a195ea083890a4_3" [label="3: UnaryOperator \n n$10=*&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test3_i:int [line 52, column 5]\n *&#GB<codetoanalyze/objc/frontend/block/static.m>$A_test3_i:int=(n$10 + 1) [line 52, column 5]\n " shape="box"]
"objc_blockA_test3_4.645dc6f18a9ea7bd77a195ea083890a4_3" -> "objc_blockA_test3_4.645dc6f18a9ea7bd77a195ea083890a4_2" ;

@ -55,7 +55,7 @@ digraph iCFG {
"navigateToURLInBackground#BlockVar#class.f4e64a7a224e4dae5096c3b731a4233e_11" -> "navigateToURLInBackground#BlockVar#class.f4e64a7a224e4dae5096c3b731a4233e_10" ;
"navigateToURLInBackground#BlockVar#class.f4e64a7a224e4dae5096c3b731a4233e_12" [label="12: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$11); [line 19, column 35]\n n$10=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockBlockVar_navigateToURLInBackground_1Class):unsigned long) [line 19, column 35]\n *&0$?%__sil_tmp_block_heap_var_n$11:Objc_blockBlockVar_navigateToURLInBackground_1Class=n$10 [line 19, column 35]\n *&addBlock:_fn_(*)=(_fun_objc_blockBlockVar_navigateToURLInBackground_1) [line 19, column 3]\n " shape="box"]
"navigateToURLInBackground#BlockVar#class.f4e64a7a224e4dae5096c3b731a4233e_12" [label="12: DeclStmt \n *&addBlock:_fn_(*)=(_fun_objc_blockBlockVar_navigateToURLInBackground_1) [line 19, column 3]\n " shape="box"]
"navigateToURLInBackground#BlockVar#class.f4e64a7a224e4dae5096c3b731a4233e_12" -> "navigateToURLInBackground#BlockVar#class.f4e64a7a224e4dae5096c3b731a4233e_11" ;
@ -81,11 +81,11 @@ digraph iCFG {
"blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_2" [label="2: Exit BlockVar_blockPostBad \n " color=yellow style=filled]
"blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_3" [label="3: Return Stmt \n n$12=*&my_block:_fn_(*) [line 36, column 11]\n n$13=n$12() [line 36, column 11]\n n$14=*n$13:int [line 36, column 10]\n *&return:int=n$14 [line 36, column 3]\n " shape="box"]
"blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_3" [label="3: Return Stmt \n n$10=*&my_block:_fn_(*) [line 36, column 11]\n n$11=n$10() [line 36, column 11]\n n$12=*n$11:int [line 36, column 10]\n *&return:int=n$12 [line 36, column 3]\n " shape="box"]
"blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_3" -> "blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_2" ;
"blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_4" [label="4: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$18); [line 33, column 28]\n n$17=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockBlockVar_blockPostBad_2Class):unsigned long) [line 33, column 28]\n *&0$?%__sil_tmp_block_heap_var_n$18:Objc_blockBlockVar_blockPostBad_2Class=n$17 [line 33, column 28]\n n$19=*&x:int* [line 33, column 28]\n *n$17.x:int*=n$19 [line 33, column 28]\n n$15=*&x:int* [line 33, column 28]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_blockPostBad_2,n$15) [line 33, column 3]\n " shape="box"]
"blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_4" [label="4: DeclStmt \n n$13=*&x:int* [line 33, column 28]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_blockPostBad_2,n$13) [line 33, column 3]\n " shape="box"]
"blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_4" -> "blockPostBad#BlockVar#instance.60292f870cad8c1a5cefdbfe4194d6f9_3" ;
@ -100,11 +100,11 @@ digraph iCFG {
"blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_2" [label="2: Exit BlockVar_blockPostOk \n " color=yellow style=filled]
"blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_3" [label="3: Return Stmt \n n$20=*&my_block:_fn_(*) [line 45, column 11]\n n$21=n$20() [line 45, column 11]\n n$22=*n$21:int [line 45, column 10]\n *&return:int=n$22 [line 45, column 3]\n " shape="box"]
"blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_3" [label="3: Return Stmt \n n$15=*&my_block:_fn_(*) [line 45, column 11]\n n$16=n$15() [line 45, column 11]\n n$17=*n$16:int [line 45, column 10]\n *&return:int=n$17 [line 45, column 3]\n " shape="box"]
"blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_3" -> "blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_2" ;
"blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_4" [label="4: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$26); [line 42, column 28]\n n$25=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockBlockVar_blockPostOk_3Class):unsigned long) [line 42, column 28]\n *&0$?%__sil_tmp_block_heap_var_n$26:Objc_blockBlockVar_blockPostOk_3Class=n$25 [line 42, column 28]\n n$27=*&x:int* [line 42, column 28]\n *n$25.x:int*=n$27 [line 42, column 28]\n n$23=*&x:int* [line 42, column 28]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_blockPostOk_3,n$23) [line 42, column 3]\n " shape="box"]
"blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_4" [label="4: DeclStmt \n n$18=*&x:int* [line 42, column 28]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_blockPostOk_3,n$18) [line 42, column 3]\n " shape="box"]
"blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_4" -> "blockPostOk#BlockVar#instance.1bb64a946f8b169b31996644931ed82d_3" ;
@ -123,11 +123,11 @@ digraph iCFG {
"capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_2" [label="2: Exit BlockVar_capturedNullDeref \n " color=yellow style=filled]
"capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_3" [label="3: Return Stmt \n n$28=*&my_block:_fn_(*) [line 53, column 10]\n n$29=n$28() [line 53, column 10]\n *&return:int=n$29 [line 53, column 3]\n " shape="box"]
"capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_3" [label="3: Return Stmt \n n$20=*&my_block:_fn_(*) [line 53, column 10]\n n$21=n$20() [line 53, column 10]\n *&return:int=n$21 [line 53, column 3]\n " shape="box"]
"capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_3" -> "capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_2" ;
"capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_4" [label="4: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$34); [line 50, column 27]\n n$33=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockBlockVar_capturedNullDeref_4Class):unsigned long) [line 50, column 27]\n *&0$?%__sil_tmp_block_heap_var_n$34:Objc_blockBlockVar_capturedNullDeref_4Class=n$33 [line 50, column 27]\n n$35=*&x:int* [line 50, column 27]\n *n$33.x:int*=n$35 [line 50, column 27]\n n$30=*&x:int* [line 50, column 27]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_capturedNullDeref_4,n$30) [line 50, column 3]\n " shape="box"]
"capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_4" [label="4: DeclStmt \n n$22=*&x:int* [line 50, column 27]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_capturedNullDeref_4,n$22) [line 50, column 3]\n " shape="box"]
"capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_4" -> "capturedNullDeref#BlockVar#instance.48c44f7ae26caf7a1ac522523ebac894_3" ;
@ -142,7 +142,7 @@ digraph iCFG {
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_2" [label="2: Exit BlockVar_capturedNoNullDeref \n " color=yellow style=filled]
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_3" [label="3: Return Stmt \n n$36=*&my_block:_fn_(*) [line 63, column 10]\n n$37=n$36() [line 63, column 10]\n *&return:int=n$37 [line 63, column 3]\n " shape="box"]
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_3" [label="3: Return Stmt \n n$25=*&my_block:_fn_(*) [line 63, column 10]\n n$26=n$25() [line 63, column 10]\n *&return:int=n$26 [line 63, column 3]\n " shape="box"]
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_3" -> "capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_2" ;
@ -150,7 +150,7 @@ digraph iCFG {
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_4" -> "capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_3" ;
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_5" [label="5: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$42); [line 59, column 27]\n n$41=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockBlockVar_capturedNoNullDeref_5Class):unsigned long) [line 59, column 27]\n *&0$?%__sil_tmp_block_heap_var_n$42:Objc_blockBlockVar_capturedNoNullDeref_5Class=n$41 [line 59, column 27]\n n$43=*&x:int* [line 59, column 27]\n *n$41.x:int*=n$43 [line 59, column 27]\n n$38=*&x:int* [line 59, column 27]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_capturedNoNullDeref_5,n$38) [line 59, column 3]\n " shape="box"]
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_5" [label="5: DeclStmt \n n$27=*&x:int* [line 59, column 27]\n *&my_block:_fn_(*)=(_fun_objc_blockBlockVar_capturedNoNullDeref_5,n$27) [line 59, column 3]\n " shape="box"]
"capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_5" -> "capturedNoNullDeref#BlockVar#instance.ebe646baaabdc58144a5916780ee8c76_4" ;
@ -169,7 +169,7 @@ digraph iCFG {
"objc_blockBlockVar_blockPostOk_3.3ab7fa6614f426747520e37cb5442862_2" [label="2: Exit objc_blockBlockVar_blockPostOk_3 \n " color=yellow style=filled]
"objc_blockBlockVar_blockPostOk_3.3ab7fa6614f426747520e37cb5442862_3" [label="3: Return Stmt \n n$24=*&x:int* [line 43, column 12]\n *&return:int*=n$24 [line 43, column 5]\n " shape="box"]
"objc_blockBlockVar_blockPostOk_3.3ab7fa6614f426747520e37cb5442862_3" [label="3: Return Stmt \n n$19=*&x:int* [line 43, column 12]\n *&return:int*=n$19 [line 43, column 5]\n " shape="box"]
"objc_blockBlockVar_blockPostOk_3.3ab7fa6614f426747520e37cb5442862_3" -> "objc_blockBlockVar_blockPostOk_3.3ab7fa6614f426747520e37cb5442862_2" ;
@ -180,7 +180,7 @@ digraph iCFG {
"objc_blockBlockVar_blockPostBad_2.bc84c345da03940b9d1bd31f97111684_2" [label="2: Exit objc_blockBlockVar_blockPostBad_2 \n " color=yellow style=filled]
"objc_blockBlockVar_blockPostBad_2.bc84c345da03940b9d1bd31f97111684_3" [label="3: Return Stmt \n n$16=*&x:int* [line 34, column 12]\n *&return:int*=n$16 [line 34, column 5]\n " shape="box"]
"objc_blockBlockVar_blockPostBad_2.bc84c345da03940b9d1bd31f97111684_3" [label="3: Return Stmt \n n$14=*&x:int* [line 34, column 12]\n *&return:int*=n$14 [line 34, column 5]\n " shape="box"]
"objc_blockBlockVar_blockPostBad_2.bc84c345da03940b9d1bd31f97111684_3" -> "objc_blockBlockVar_blockPostBad_2.bc84c345da03940b9d1bd31f97111684_2" ;
@ -191,7 +191,7 @@ digraph iCFG {
"objc_blockBlockVar_capturedNoNullDeref_5.9ca77a5edecb840a7e1b223eb6f09bab_2" [label="2: Exit objc_blockBlockVar_capturedNoNullDeref_5 \n " color=yellow style=filled]
"objc_blockBlockVar_capturedNoNullDeref_5.9ca77a5edecb840a7e1b223eb6f09bab_3" [label="3: Return Stmt \n n$39=*&x:int* [line 60, column 13]\n n$40=*n$39:int [line 60, column 12]\n *&return:int=n$40 [line 60, column 5]\n " shape="box"]
"objc_blockBlockVar_capturedNoNullDeref_5.9ca77a5edecb840a7e1b223eb6f09bab_3" [label="3: Return Stmt \n n$28=*&x:int* [line 60, column 13]\n n$29=*n$28:int [line 60, column 12]\n *&return:int=n$29 [line 60, column 5]\n " shape="box"]
"objc_blockBlockVar_capturedNoNullDeref_5.9ca77a5edecb840a7e1b223eb6f09bab_3" -> "objc_blockBlockVar_capturedNoNullDeref_5.9ca77a5edecb840a7e1b223eb6f09bab_2" ;
@ -202,7 +202,7 @@ digraph iCFG {
"objc_blockBlockVar_capturedNullDeref_4.1bdaeaa4f18868112cc189c7d6e42bf9_2" [label="2: Exit objc_blockBlockVar_capturedNullDeref_4 \n " color=yellow style=filled]
"objc_blockBlockVar_capturedNullDeref_4.1bdaeaa4f18868112cc189c7d6e42bf9_3" [label="3: Return Stmt \n n$31=*&x:int* [line 51, column 13]\n n$32=*n$31:int [line 51, column 12]\n *&return:int=n$32 [line 51, column 5]\n " shape="box"]
"objc_blockBlockVar_capturedNullDeref_4.1bdaeaa4f18868112cc189c7d6e42bf9_3" [label="3: Return Stmt \n n$23=*&x:int* [line 51, column 13]\n n$24=*n$23:int [line 51, column 12]\n *&return:int=n$24 [line 51, column 5]\n " shape="box"]
"objc_blockBlockVar_capturedNullDeref_4.1bdaeaa4f18868112cc189c7d6e42bf9_3" -> "objc_blockBlockVar_capturedNullDeref_4.1bdaeaa4f18868112cc189c7d6e42bf9_2" ;

@ -44,15 +44,15 @@ digraph iCFG {
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_4" -> "objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_2" ;
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_5" [label="5: Prune (true branch) \n n$24=*&ShouldStop:int [line 44, column 13]\n PRUNE(n$24, true); [line 44, column 13]\n " shape="invhouse"]
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_5" [label="5: Prune (true branch) \n n$22=*&ShouldStop:int [line 44, column 13]\n PRUNE(n$22, true); [line 44, column 13]\n " shape="invhouse"]
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_5" -> "objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_7" ;
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_6" [label="6: Prune (false branch) \n n$24=*&ShouldStop:int [line 44, column 13]\n PRUNE(!n$24, false); [line 44, column 13]\n " shape="invhouse"]
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_6" [label="6: Prune (false branch) \n n$22=*&ShouldStop:int [line 44, column 13]\n PRUNE(!n$22, false); [line 44, column 13]\n " shape="invhouse"]
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_6" -> "objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_3" ;
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_7" [label="7: BinaryOperatorStmt: Assign \n n$25=*&stop:_Bool* [line 45, column 12]\n *n$25:_Bool=1 [line 45, column 11]\n " shape="box"]
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_7" [label="7: BinaryOperatorStmt: Assign \n n$23=*&stop:_Bool* [line 45, column 12]\n *n$23:_Bool=1 [line 45, column 11]\n " shape="box"]
"objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_7" -> "objc_blockMyBlock_array_trans_2.5153520a659dce1fe6582bd44cf47e84_3" ;
@ -63,11 +63,11 @@ digraph iCFG {
"array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_2" [label="2: Exit MyBlock_array \n " color=yellow style=filled]
"array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_3" [label="3: Message Call: enumerateObjectsUsingBlock: \n n$0=*&a:NSArray* [line 21, column 4]\n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$4); [line 21, column 33]\n n$3=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockMyBlock_array_1Class):unsigned long) [line 21, column 33]\n *&0$?%__sil_tmp_block_heap_var_n$4:Objc_blockMyBlock_array_1Class=n$3 [line 21, column 33]\n n$5=*&objc_blockMyBlock_array_1:_fn_(*) [line 21, column 3]\n _fun_NSArray_enumerateObjectsUsingBlock:(n$0:NSArray*,n$5:_fn_(*)) virtual [line 21, column 3]\n " shape="box"]
"array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_3" [label="3: Message Call: enumerateObjectsUsingBlock: \n n$0=*&a:NSArray* [line 21, column 4]\n n$3=*&objc_blockMyBlock_array_1:_fn_(*) [line 21, column 3]\n _fun_NSArray_enumerateObjectsUsingBlock:(n$0:NSArray*,n$3:_fn_(*)) virtual [line 21, column 3]\n " shape="box"]
"array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_3" -> "array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_2" ;
"array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_4" [label="4: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(t=NSArray):unsigned long) [line 20, column 17]\n n$7=_fun_NSArray_init(n$6:NSArray*) virtual [line 20, column 16]\n *&a:NSArray*=n$7 [line 20, column 3]\n " shape="box"]
"array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_4" [label="4: DeclStmt \n n$4=_fun___objc_alloc_no_fail(sizeof(t=NSArray):unsigned long) [line 20, column 17]\n n$5=_fun_NSArray_init(n$4:NSArray*) virtual [line 20, column 16]\n *&a:NSArray*=n$5 [line 20, column 3]\n " shape="box"]
"array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_4" -> "array#MyBlock#instance.8be6e5b5e968d186440e1931c9eb40de_3" ;
@ -78,7 +78,7 @@ digraph iCFG {
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_2" [label="2: Exit MyBlock_array_trans \n " color=yellow style=filled]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_3" [label="3: Call _fun_free \n n$8=*&stop:_Bool* [line 58, column 8]\n _fun_free(n$8:void*) [line 58, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_3" [label="3: Call _fun_free \n n$6=*&stop:_Bool* [line 58, column 8]\n _fun_free(n$6:void*) [line 58, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_3" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_2" ;
@ -90,20 +90,20 @@ digraph iCFG {
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_5" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_4" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_6" [label="6: UnaryOperator \n n$9=*&idx:unsigned long [line 51, column 49]\n *&idx:unsigned long=(n$9 + 1) [line 51, column 49]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_6" [label="6: UnaryOperator \n n$7=*&idx:unsigned long [line 51, column 49]\n *&idx:unsigned long=(n$7 + 1) [line 51, column 49]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_6" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_4" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_7" [label="7: BinaryOperatorStmt: LT \n n$10=*&idx:unsigned long [line 51, column 28]\n n$11=*&objects:NSArray* [line 51, column 34]\n n$12=_fun_NSArray_count(n$11:NSArray*) [line 51, column 42]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_7" [label="7: BinaryOperatorStmt: LT \n n$8=*&idx:unsigned long [line 51, column 28]\n n$9=*&objects:NSArray* [line 51, column 34]\n n$10=_fun_NSArray_count(n$9:NSArray*) [line 51, column 42]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_7" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_8" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_7" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_9" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_8" [label="8: Prune (true branch) \n PRUNE((n$10 < n$12), true); [line 51, column 28]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_8" [label="8: Prune (true branch) \n PRUNE((n$8 < n$10), true); [line 51, column 28]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_8" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_15" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_9" [label="9: Prune (false branch) \n PRUNE(!(n$10 < n$12), false); [line 51, column 28]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_9" [label="9: Prune (false branch) \n PRUNE(!(n$8 < n$10), false); [line 51, column 28]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_9" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_3" ;
@ -111,44 +111,44 @@ digraph iCFG {
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_10" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_6" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_11" [label="11: BinaryOperatorStmt: EQ \n n$13=*&stop:_Bool* [line 55, column 10]\n n$14=*n$13:_Bool [line 55, column 9]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_11" [label="11: BinaryOperatorStmt: EQ \n n$11=*&stop:_Bool* [line 55, column 10]\n n$12=*n$11:_Bool [line 55, column 9]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_11" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_12" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_11" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_13" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_12" [label="12: Prune (true branch) \n PRUNE((n$14 == 1), true); [line 55, column 9]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_12" [label="12: Prune (true branch) \n PRUNE((n$12 == 1), true); [line 55, column 9]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_12" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_3" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_13" [label="13: Prune (false branch) \n PRUNE(!(n$14 == 1), false); [line 55, column 9]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_13" [label="13: Prune (false branch) \n PRUNE(!(n$12 == 1), false); [line 55, column 9]\n " shape="invhouse"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_13" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_10" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_14" [label="14: Call n$15 \n n$15=*&enumerateObjectsUsingBlock:_fn_(*) [line 54, column 5]\n n$16=*&object:objc_object* [line 54, column 32]\n n$17=*&idx:unsigned long [line 54, column 40]\n n$18=*&stop:_Bool* [line 54, column 45]\n n$15(n$16:objc_object*,n$17:unsigned long,n$18:_Bool*) [line 54, column 5]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_14" [label="14: Call n$13 \n n$13=*&enumerateObjectsUsingBlock:_fn_(*) [line 54, column 5]\n n$14=*&object:objc_object* [line 54, column 32]\n n$15=*&idx:unsigned long [line 54, column 40]\n n$16=*&stop:_Bool* [line 54, column 45]\n n$13(n$14:objc_object*,n$15:unsigned long,n$16:_Bool*) [line 54, column 5]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_14" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_11" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_15" [label="15: DeclStmt \n n$19=*&objects:NSArray* [line 53, column 17]\n n$20=*&idx:unsigned long [line 53, column 25]\n n$21=_fun_NSArray_objectAtIndexedSubscript:(n$19:NSArray*,n$20:unsigned long) virtual [line 53, column 17]\n *&object:objc_object*=n$21 [line 53, column 5]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_15" [label="15: DeclStmt \n n$17=*&objects:NSArray* [line 53, column 17]\n n$18=*&idx:unsigned long [line 53, column 25]\n n$19=_fun_NSArray_objectAtIndexedSubscript:(n$17:NSArray*,n$18:unsigned long) virtual [line 53, column 17]\n *&object:objc_object*=n$19 [line 53, column 5]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_15" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_14" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_16" [label="16: BinaryOperatorStmt: Assign \n n$22=*&stop:_Bool* [line 49, column 4]\n *n$22:_Bool=0 [line 49, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_16" [label="16: BinaryOperatorStmt: Assign \n n$20=*&stop:_Bool* [line 49, column 4]\n *n$20:_Bool=0 [line 49, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_16" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_5" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_17" [label="17: DeclStmt \n n$23=_fun_malloc_no_fail(sizeof(t=_Bool;nbytes=1):_Bool) [line 48, column 16]\n *&stop:_Bool*=n$23 [line 48, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_17" [label="17: DeclStmt \n n$21=_fun_malloc_no_fail(sizeof(t=_Bool;nbytes=1):_Bool) [line 48, column 16]\n *&stop:_Bool*=n$21 [line 48, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_17" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_16" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_18" [label="18: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$27); [line 40, column 7]\n n$26=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockMyBlock_array_trans_2Class):unsigned long) [line 40, column 7]\n *&0$?%__sil_tmp_block_heap_var_n$27:Objc_blockMyBlock_array_trans_2Class=n$26 [line 40, column 7]\n *&enumerateObjectsUsingBlock:_fn_(*)=(_fun_objc_blockMyBlock_array_trans_2) [line 39, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_18" [label="18: DeclStmt \n *&enumerateObjectsUsingBlock:_fn_(*)=(_fun_objc_blockMyBlock_array_trans_2) [line 39, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_18" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_17" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_19" [label="19: DeclStmt \n n$28=*&a:NSArray* [line 36, column 22]\n *&objects:NSArray*=n$28 [line 36, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_19" [label="19: DeclStmt \n n$24=*&a:NSArray* [line 36, column 22]\n *&objects:NSArray*=n$24 [line 36, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_19" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_18" ;
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_20" [label="20: DeclStmt \n n$29=_fun___objc_alloc_no_fail(sizeof(t=NSArray):unsigned long) [line 34, column 17]\n n$30=_fun_NSArray_init(n$29:NSArray*) virtual [line 34, column 16]\n *&a:NSArray*=n$30 [line 34, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_20" [label="20: DeclStmt \n n$25=_fun___objc_alloc_no_fail(sizeof(t=NSArray):unsigned long) [line 34, column 17]\n n$26=_fun_NSArray_init(n$25:NSArray*) virtual [line 34, column 16]\n *&a:NSArray*=n$26 [line 34, column 3]\n " shape="box"]
"array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_20" -> "array_trans#MyBlock#instance.13289a590560d0628a3ae5174e716a32_19" ;

@ -41,15 +41,15 @@ digraph iCFG {
"main1.38f534a9576db7ec6ebcbca8c111f942_5" -> "main1.38f534a9576db7ec6ebcbca8c111f942_4" ;
"main1.38f534a9576db7ec6ebcbca8c111f942_6" [label="6: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$8); [line 34, column 14]\n n$7=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockmain1_1Class):unsigned long) [line 34, column 14]\n *&0$?%__sil_tmp_block_heap_var_n$8:Objc_blockmain1_1Class=n$7 [line 34, column 14]\n n$9=*&#GB<codetoanalyze/objc/shared/block/block.m>$main1_s:int [line 34, column 14]\n *n$7.main1_s:int=n$9 [line 34, column 14]\n *&addblock:_fn_(*)=(_fun_objc_blockmain1_1) [line 34, column 3]\n " shape="box"]
"main1.38f534a9576db7ec6ebcbca8c111f942_6" [label="6: BinaryOperatorStmt: Assign \n *&addblock:_fn_(*)=(_fun_objc_blockmain1_1) [line 34, column 3]\n " shape="box"]
"main1.38f534a9576db7ec6ebcbca8c111f942_6" -> "main1.38f534a9576db7ec6ebcbca8c111f942_5" ;
"main1.38f534a9576db7ec6ebcbca8c111f942_7" [label="7: BinaryOperatorStmt: Assign \n n$10=*&addblock:_fn_(*) [line 32, column 10]\n n$11=n$10(1:int,2:int) [line 32, column 10]\n *&add1:int=n$11 [line 32, column 3]\n " shape="box"]
"main1.38f534a9576db7ec6ebcbca8c111f942_7" [label="7: BinaryOperatorStmt: Assign \n n$7=*&addblock:_fn_(*) [line 32, column 10]\n n$8=n$7(1:int,2:int) [line 32, column 10]\n *&add1:int=n$8 [line 32, column 3]\n " shape="box"]
"main1.38f534a9576db7ec6ebcbca8c111f942_7" -> "main1.38f534a9576db7ec6ebcbca8c111f942_6" ;
"main1.38f534a9576db7ec6ebcbca8c111f942_8" [label="8: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$30); [line 18, column 14]\n n$29=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockmain1_2Class):unsigned long) [line 18, column 14]\n *&0$?%__sil_tmp_block_heap_var_n$30:Objc_blockmain1_2Class=n$29 [line 18, column 14]\n n$31=*&x:int [line 18, column 14]\n *n$29.x:int=n$31 [line 18, column 14]\n n$12=*&x:int [line 18, column 14]\n *&addblock:_fn_(*)=(_fun_objc_blockmain1_2,n$12) [line 18, column 3]\n " shape="box"]
"main1.38f534a9576db7ec6ebcbca8c111f942_8" [label="8: BinaryOperatorStmt: Assign \n n$9=*&x:int [line 18, column 14]\n *&addblock:_fn_(*)=(_fun_objc_blockmain1_2,n$9) [line 18, column 3]\n " shape="box"]
"main1.38f534a9576db7ec6ebcbca8c111f942_8" -> "main1.38f534a9576db7ec6ebcbca8c111f942_7" ;
@ -68,15 +68,15 @@ digraph iCFG {
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_2" [label="2: Exit objc_blockmain1_2 \n " color=yellow style=filled]
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_3" [label="3: Return Stmt \n n$13=*&c:int [line 29, column 12]\n n$14=*&add2:int [line 29, column 16]\n n$15=*&bla:int [line 29, column 23]\n *&return:int=((n$13 + n$14) + n$15) [line 29, column 5]\n " shape="box"]
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_3" [label="3: Return Stmt \n n$10=*&c:int [line 29, column 12]\n n$11=*&add2:int [line 29, column 16]\n n$12=*&bla:int [line 29, column 23]\n *&return:int=((n$10 + n$11) + n$12) [line 29, column 5]\n " shape="box"]
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_3" -> "objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_2" ;
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_4" [label="4: BinaryOperatorStmt: Assign \n n$16=*&addblock2:_fn_(*) [line 28, column 12]\n n$17=n$16(1:int) [line 28, column 12]\n *&add2:int=n$17 [line 28, column 5]\n " shape="box"]
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_4" [label="4: BinaryOperatorStmt: Assign \n n$13=*&addblock2:_fn_(*) [line 28, column 12]\n n$14=n$13(1:int) [line 28, column 12]\n *&add2:int=n$14 [line 28, column 5]\n " shape="box"]
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_4" -> "objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_3" ;
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_5" [label="5: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$25); [line 24, column 17]\n n$24=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockobjc_blockmain1_2_3Class):unsigned long) [line 24, column 17]\n *&0$?%__sil_tmp_block_heap_var_n$25:Objc_blockobjc_blockmain1_2_3Class=n$24 [line 24, column 17]\n n$26=*&x:int [line 24, column 17]\n n$27=*&bla:int [line 24, column 17]\n n$28=*&#GB<codetoanalyze/objc/shared/block/block.m>$main1_s:int [line 24, column 17]\n *n$24.x:int=n$26 [line 24, column 17]\n *n$24.bla:int=n$27 [line 24, column 17]\n *n$24.main1_s:int=n$28 [line 24, column 17]\n n$18=*&x:int [line 24, column 17]\n n$19=*&bla:int [line 24, column 17]\n *&addblock2:_fn_(*)=(_fun_objc_blockobjc_blockmain1_2_3,n$18,n$19) [line 24, column 5]\n " shape="box"]
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_5" [label="5: BinaryOperatorStmt: Assign \n n$15=*&x:int [line 24, column 17]\n n$16=*&bla:int [line 24, column 17]\n *&addblock2:_fn_(*)=(_fun_objc_blockobjc_blockmain1_2_3,n$15,n$16) [line 24, column 5]\n " shape="box"]
"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_5" -> "objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_4" ;
@ -91,7 +91,7 @@ digraph iCFG {
"objc_blockobjc_blockmain1_2_3.0824f0806cf4ebad2920e9a12535d20e_2" [label="2: Exit objc_blockobjc_blockmain1_2_3 \n " color=yellow style=filled]
"objc_blockobjc_blockmain1_2_3.0824f0806cf4ebad2920e9a12535d20e_3" [label="3: Return Stmt \n n$20=*&z:int [line 25, column 14]\n n$21=*&#GB<codetoanalyze/objc/shared/block/block.m>$main1_s:int [line 25, column 18]\n n$22=*&x:int [line 25, column 22]\n n$23=*&bla:int [line 25, column 26]\n *&return:int=(((n$20 + n$21) + n$22) + n$23) [line 25, column 7]\n " shape="box"]
"objc_blockobjc_blockmain1_2_3.0824f0806cf4ebad2920e9a12535d20e_3" [label="3: Return Stmt \n n$17=*&z:int [line 25, column 14]\n n$18=*&#GB<codetoanalyze/objc/shared/block/block.m>$main1_s:int [line 25, column 18]\n n$19=*&x:int [line 25, column 22]\n n$20=*&bla:int [line 25, column 26]\n *&return:int=(((n$17 + n$18) + n$19) + n$20) [line 25, column 7]\n " shape="box"]
"objc_blockobjc_blockmain1_2_3.0824f0806cf4ebad2920e9a12535d20e_3" -> "objc_blockobjc_blockmain1_2_3.0824f0806cf4ebad2920e9a12535d20e_2" ;

@ -44,7 +44,7 @@ digraph iCFG {
"m#My_manager#instance.e773f849d062cb9801497b62f5c98f5e_11" -> "m#My_manager#instance.e773f849d062cb9801497b62f5c98f5e_10" ;
"m#My_manager#instance.e773f849d062cb9801497b62f5c98f5e_12" [label="12: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$8); [line 25, column 7]\n n$7=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockMy_manager_m_1Class):unsigned long) [line 25, column 7]\n *&0$?%__sil_tmp_block_heap_var_n$8:Objc_blockMy_manager_m_1Class=n$7 [line 25, column 7]\n n$9=*&z:int [line 25, column 7]\n n$10=*&#GB<codetoanalyze/objc/shared/block/block_no_args.m>$g:int [line 25, column 7]\n *n$7.z:int=n$9 [line 25, column 7]\n *n$7.g:int=n$10 [line 25, column 7]\n n$5=*&z:int [line 25, column 7]\n *&b:_fn_(*)=(_fun_objc_blockMy_manager_m_1,n$5) [line 25, column 3]\n " shape="box"]
"m#My_manager#instance.e773f849d062cb9801497b62f5c98f5e_12" [label="12: BinaryOperatorStmt: Assign \n n$5=*&z:int [line 25, column 7]\n *&b:_fn_(*)=(_fun_objc_blockMy_manager_m_1,n$5) [line 25, column 3]\n " shape="box"]
"m#My_manager#instance.e773f849d062cb9801497b62f5c98f5e_12" -> "m#My_manager#instance.e773f849d062cb9801497b62f5c98f5e_11" ;

@ -32,15 +32,15 @@ digraph iCFG {
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_8" -> "blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_5" ;
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_8" -> "blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_6" ;
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_9" [label="9: BinaryOperatorStmt: Assign \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$9); [line 25, column 7]\n n$8=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockMy_manager_blockReleaseTODO_1Class):unsigned long) [line 25, column 7]\n *&0$?%__sil_tmp_block_heap_var_n$9:Objc_blockMy_manager_blockReleaseTODO_1Class=n$8 [line 25, column 7]\n n$10=*&newImage:CGImage* [line 25, column 7]\n *n$8.newImage:CGImage*=n$10 [line 25, column 7]\n n$5=*&newImage:CGImage* [line 25, column 7]\n *&b:_fn_(*)=(_fun_objc_blockMy_manager_blockReleaseTODO_1,n$5) [line 25, column 3]\n " shape="box"]
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_9" [label="9: BinaryOperatorStmt: Assign \n n$5=*&newImage:CGImage* [line 25, column 7]\n *&b:_fn_(*)=(_fun_objc_blockMy_manager_blockReleaseTODO_1,n$5) [line 25, column 3]\n " shape="box"]
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_9" -> "blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_8" ;
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_10" [label="10: DeclStmt \n n$11=*&context:CGContext* [line 24, column 52]\n n$12=_fun_CGBitmapContextCreateImage(n$11:CGContext*) [line 24, column 25]\n *&newImage:CGImage*=n$12 [line 24, column 3]\n " shape="box"]
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_10" [label="10: DeclStmt \n n$8=*&context:CGContext* [line 24, column 52]\n n$9=_fun_CGBitmapContextCreateImage(n$8:CGContext*) [line 24, column 25]\n *&newImage:CGImage*=n$9 [line 24, column 3]\n " shape="box"]
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_10" -> "blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_9" ;
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_11" [label="11: DeclStmt \n n$13=_fun_CGBitmapContextCreate(null:void*,0:unsigned long,0:unsigned long,8:unsigned long,0:unsigned long,null:CGColorSpace*,0:unsigned int) [line 23, column 26]\n *&context:CGContext*=n$13 [line 23, column 3]\n " shape="box"]
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_11" [label="11: DeclStmt \n n$10=_fun_CGBitmapContextCreate(null:void*,0:unsigned long,0:unsigned long,8:unsigned long,0:unsigned long,null:CGColorSpace*,0:unsigned int) [line 23, column 26]\n *&context:CGContext*=n$10 [line 23, column 3]\n " shape="box"]
"blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_11" -> "blockReleaseTODO#My_manager#instance.8c1d633cf596e86a307167d9425628a8_10" ;

@ -11,7 +11,7 @@ digraph iCFG {
"sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_3" -> "sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_2" ;
"sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_4" [label="4: Call (_fun_objc_blockDispatchA_sharedInstance_1) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$5); [line 30, column 24]\n n$4=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchA_sharedInstance_1Class):unsigned long) [line 30, column 24]\n *&0$?%__sil_tmp_block_heap_var_n$5:Objc_blockDispatchA_sharedInstance_1Class=n$4 [line 30, column 24]\n n$6=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_sharedInstance_sharedInstance:objc_object* [line 30, column 24]\n *n$4.DispatchA_sharedInstance_sharedInstance:objc_object*=n$6 [line 30, column 24]\n n$7=(_fun_objc_blockDispatchA_sharedInstance_1)() [line 30, column 3]\n " shape="box"]
"sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_4" [label="4: Call (_fun_objc_blockDispatchA_sharedInstance_1) \n n$4=(_fun_objc_blockDispatchA_sharedInstance_1)() [line 30, column 3]\n " shape="box"]
"sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_4" -> "sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_3" ;
@ -33,15 +33,15 @@ digraph iCFG {
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_2" [label="2: Exit DispatchA_trans \n " color=yellow style=filled]
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_3" [label="3: Return Stmt \n n$8=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_trans_sharedInstance:objc_object* [line 42, column 10]\n *&return:objc_object*=n$8 [line 42, column 3]\n " shape="box"]
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_3" [label="3: Return Stmt \n n$5=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_trans_sharedInstance:objc_object* [line 42, column 10]\n *&return:objc_object*=n$5 [line 42, column 3]\n " shape="box"]
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_3" -> "trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_2" ;
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_4" [label="4: Call n$9 \n n$9=*&dummy_block:_fn_(*) [line 41, column 3]\n n$9() [line 41, column 3]\n " shape="box"]
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_4" [label="4: Call n$6 \n n$6=*&dummy_block:_fn_(*) [line 41, column 3]\n n$6() [line 41, column 3]\n " shape="box"]
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_4" -> "trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_3" ;
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_5" [label="5: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$13); [line 38, column 27]\n n$12=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchA_trans_2Class):unsigned long) [line 38, column 27]\n *&0$?%__sil_tmp_block_heap_var_n$13:Objc_blockDispatchA_trans_2Class=n$12 [line 38, column 27]\n n$14=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_trans_sharedInstance:objc_object* [line 38, column 27]\n *n$12.DispatchA_trans_sharedInstance:objc_object*=n$14 [line 38, column 27]\n *&dummy_block:_fn_(*)=(_fun_objc_blockDispatchA_trans_2) [line 38, column 3]\n " shape="box"]
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_5" [label="5: DeclStmt \n *&dummy_block:_fn_(*)=(_fun_objc_blockDispatchA_trans_2) [line 38, column 3]\n " shape="box"]
"trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_5" -> "trans#DispatchA#class.23f9d908a87deca79c235bc76ca6e941_4" ;
@ -52,7 +52,7 @@ digraph iCFG {
"objc_blockDispatchA_trans_2.3e9844ebda3bff9e63047261f5667152_2" [label="2: Exit objc_blockDispatchA_trans_2 \n " color=yellow style=filled]
"objc_blockDispatchA_trans_2.3e9844ebda3bff9e63047261f5667152_3" [label="3: BinaryOperatorStmt: Assign \n n$10=_fun___objc_alloc_no_fail(sizeof(t=DispatchA):unsigned long) [line 39, column 23]\n n$11=_fun_DispatchA_init(n$10:DispatchA*) virtual [line 39, column 22]\n *&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_trans_sharedInstance:objc_object*=n$11 [line 39, column 5]\n " shape="box"]
"objc_blockDispatchA_trans_2.3e9844ebda3bff9e63047261f5667152_3" [label="3: BinaryOperatorStmt: Assign \n n$7=_fun___objc_alloc_no_fail(sizeof(t=DispatchA):unsigned long) [line 39, column 23]\n n$8=_fun_DispatchA_init(n$7:DispatchA*) virtual [line 39, column 22]\n *&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_trans_sharedInstance:objc_object*=n$8 [line 39, column 5]\n " shape="box"]
"objc_blockDispatchA_trans_2.3e9844ebda3bff9e63047261f5667152_3" -> "objc_blockDispatchA_trans_2.3e9844ebda3bff9e63047261f5667152_2" ;
@ -63,15 +63,15 @@ digraph iCFG {
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_2" [label="2: Exit DispatchA_dispatch_a_block_variable \n " color=yellow style=filled]
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_3" [label="3: Return Stmt \n n$15=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_static_storage__:objc_object* [line 52, column 10]\n *&return:objc_object*=n$15 [line 52, column 3]\n " shape="box"]
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_3" [label="3: Return Stmt \n n$9=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_static_storage__:objc_object* [line 52, column 10]\n *&return:objc_object*=n$9 [line 52, column 3]\n " shape="box"]
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_3" -> "dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_2" ;
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_4" [label="4: Call n$16 \n n$16=*&initialization_block__:_fn_(*) [line 51, column 33]\n n$17=n$16() [line 51, column 3]\n " shape="box"]
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_4" [label="4: Call n$10 \n n$10=*&initialization_block__:_fn_(*) [line 51, column 33]\n n$11=n$10() [line 51, column 3]\n " shape="box"]
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_4" -> "dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_3" ;
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_5" [label="5: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$21); [line 47, column 38]\n n$20=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchA_dispatch_a_block_variable_3Class):unsigned long) [line 47, column 38]\n *&0$?%__sil_tmp_block_heap_var_n$21:Objc_blockDispatchA_dispatch_a_block_variable_3Class=n$20 [line 47, column 38]\n n$22=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_static_storage__:objc_object* [line 47, column 38]\n *n$20.DispatchA_dispatch_a_block_variable_static_storage__:objc_object*=n$22 [line 47, column 38]\n *&initialization_block__:_fn_(*)=(_fun_objc_blockDispatchA_dispatch_a_block_variable_3) [line 47, column 3]\n " shape="box"]
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_5" [label="5: DeclStmt \n *&initialization_block__:_fn_(*)=(_fun_objc_blockDispatchA_dispatch_a_block_variable_3) [line 47, column 3]\n " shape="box"]
"dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_5" -> "dispatch_a_block_variable#DispatchA#class.3cc12dd22127281b8293b7c046d21bb2_4" ;
@ -82,7 +82,7 @@ digraph iCFG {
"objc_blockDispatchA_dispatch_a_block_variable_3.09c6b14692ef67057c46de6cee569440_2" [label="2: Exit objc_blockDispatchA_dispatch_a_block_variable_3 \n " color=yellow style=filled]
"objc_blockDispatchA_dispatch_a_block_variable_3.09c6b14692ef67057c46de6cee569440_3" [label="3: BinaryOperatorStmt: Assign \n n$18=_fun___objc_alloc_no_fail(sizeof(t=DispatchA):unsigned long) [line 48, column 25]\n n$19=_fun_DispatchA_init(n$18:DispatchA*) virtual [line 48, column 25]\n *&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_static_storage__:objc_object*=n$19 [line 48, column 5]\n " shape="box"]
"objc_blockDispatchA_dispatch_a_block_variable_3.09c6b14692ef67057c46de6cee569440_3" [label="3: BinaryOperatorStmt: Assign \n n$12=_fun___objc_alloc_no_fail(sizeof(t=DispatchA):unsigned long) [line 48, column 25]\n n$13=_fun_DispatchA_init(n$12:DispatchA*) virtual [line 48, column 25]\n *&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_static_storage__:objc_object*=n$13 [line 48, column 5]\n " shape="box"]
"objc_blockDispatchA_dispatch_a_block_variable_3.09c6b14692ef67057c46de6cee569440_3" -> "objc_blockDispatchA_dispatch_a_block_variable_3.09c6b14692ef67057c46de6cee569440_2" ;
@ -93,19 +93,19 @@ digraph iCFG {
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_2" [label="2: Exit DispatchA_dispatch_a_block_variable_from_macro \n " color=yellow style=filled]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_3" [label="3: Fallback node \n n$23=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:objc_object* [line 63, column 5]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_3" [label="3: Fallback node \n n$14=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:objc_object* [line 63, column 5]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_3" -> "dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_6" ;
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_4" [label="4: Call n$24 \n n$24=*&initialization_block__:_fn_(*) [line 62, column 35]\n n$25=n$24() [line 62, column 5]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_4" [label="4: Call n$15 \n n$15=*&initialization_block__:_fn_(*) [line 62, column 35]\n n$16=n$15() [line 62, column 5]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_4" -> "dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_3" ;
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_5" [label="5: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$29); [line 58, column 40]\n n$28=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchA_dispatch_a_block_variable_from_macro_4Class):unsigned long) [line 58, column 40]\n *&0$?%__sil_tmp_block_heap_var_n$29:Objc_blockDispatchA_dispatch_a_block_variable_from_macro_4Class=n$28 [line 58, column 40]\n n$30=*&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:objc_object* [line 58, column 40]\n *n$28.DispatchA_dispatch_a_block_variable_from_macro_static_storage__:objc_object*=n$30 [line 58, column 40]\n *&initialization_block__:_fn_(*)=(_fun_objc_blockDispatchA_dispatch_a_block_variable_from_macro_4) [line 58, column 5]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_5" [label="5: DeclStmt \n *&initialization_block__:_fn_(*)=(_fun_objc_blockDispatchA_dispatch_a_block_variable_from_macro_4) [line 58, column 5]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_5" -> "dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_4" ;
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_6" [label="6: Return Stmt \n *&return:objc_object*=n$23 [line 56, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_6" [label="6: Return Stmt \n *&return:objc_object*=n$14 [line 56, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_6" -> "dispatch_a_block_variable_from_macro#DispatchA#class.92567a38d5ab3cf637f72030b1097441_2" ;
@ -116,7 +116,7 @@ digraph iCFG {
"objc_blockDispatchA_dispatch_a_block_variable_from_macro_4.cdb7f792f8c2689b337db5fca633647f_2" [label="2: Exit objc_blockDispatchA_dispatch_a_block_variable_from_macro_4 \n " color=yellow style=filled]
"objc_blockDispatchA_dispatch_a_block_variable_from_macro_4.cdb7f792f8c2689b337db5fca633647f_3" [label="3: BinaryOperatorStmt: Assign \n n$26=_fun___objc_alloc_no_fail(sizeof(t=DispatchA):unsigned long) [line 59, column 27]\n n$27=_fun_DispatchA_init(n$26:DispatchA*) virtual [line 59, column 27]\n *&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:objc_object*=n$27 [line 59, column 7]\n " shape="box"]
"objc_blockDispatchA_dispatch_a_block_variable_from_macro_4.cdb7f792f8c2689b337db5fca633647f_3" [label="3: BinaryOperatorStmt: Assign \n n$17=_fun___objc_alloc_no_fail(sizeof(t=DispatchA):unsigned long) [line 59, column 27]\n n$18=_fun_DispatchA_init(n$17:DispatchA*) virtual [line 59, column 27]\n *&#GB<codetoanalyze/objc/shared/block/dispatch.m>$DispatchA_dispatch_a_block_variable_from_macro_static_storage__:objc_object*=n$18 [line 59, column 7]\n " shape="box"]
"objc_blockDispatchA_dispatch_a_block_variable_from_macro_4.cdb7f792f8c2689b337db5fca633647f_3" -> "objc_blockDispatchA_dispatch_a_block_variable_from_macro_4.cdb7f792f8c2689b337db5fca633647f_2" ;
@ -127,15 +127,15 @@ digraph iCFG {
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_2" [label="2: Exit DispatchA_dispatch_a_block_variable_from_macro_delivers_initialised_object \n " color=yellow style=filled]
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_3" [label="3: Return Stmt \n n$31=*&a:DispatchA* [line 70, column 15]\n n$32=*n$31._x:int [line 70, column 15]\n *&return:int=(1 / (n$32 - 5)) [line 70, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_3" [label="3: Return Stmt \n n$19=*&a:DispatchA* [line 70, column 15]\n n$20=*n$19._x:int [line 70, column 15]\n *&return:int=(1 / (n$20 - 5)) [line 70, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_3" -> "dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_2" ;
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_4" [label="4: BinaryOperatorStmt: Assign \n n$33=*&a:DispatchA* [line 69, column 3]\n *n$33._x:int=5 [line 69, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_4" [label="4: BinaryOperatorStmt: Assign \n n$21=*&a:DispatchA* [line 69, column 3]\n *n$21._x:int=5 [line 69, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_4" -> "dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_3" ;
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_5" [label="5: DeclStmt \n n$34=_fun_DispatchA_dispatch_a_block_variable_from_macro() [line 68, column 18]\n *&a:DispatchA*=n$34 [line 68, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_5" [label="5: DeclStmt \n n$22=_fun_DispatchA_dispatch_a_block_variable_from_macro() [line 68, column 18]\n *&a:DispatchA*=n$22 [line 68, column 3]\n " shape="box"]
"dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_5" -> "dispatch_a_block_variable_from_macro_delivers_initialised_object#DispatchA#class.a58ef5afb5e1e9480b49788e2400c52c_4" ;

@ -11,7 +11,7 @@ digraph iCFG {
"dispatch_once_example#DispatchEx#class.d3456446b1a2d5355c1767887cc8b62c_3" -> "dispatch_once_example#DispatchEx#class.d3456446b1a2d5355c1767887cc8b62c_2" ;
"dispatch_once_example#DispatchEx#class.d3456446b1a2d5355c1767887cc8b62c_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_once_example_1) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$7); [line 29, column 29]\n n$6=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchEx_dispatch_once_example_1Class):unsigned long) [line 29, column 29]\n *&0$?%__sil_tmp_block_heap_var_n$7:Objc_blockDispatchEx_dispatch_once_example_1Class=n$6 [line 29, column 29]\n n$8=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_once_example_a:DispatchEx* [line 29, column 29]\n *n$6.DispatchEx_dispatch_once_example_a:DispatchEx*=n$8 [line 29, column 29]\n n$9=(_fun_objc_blockDispatchEx_dispatch_once_example_1)() [line 29, column 3]\n " shape="box"]
"dispatch_once_example#DispatchEx#class.d3456446b1a2d5355c1767887cc8b62c_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_once_example_1) \n n$6=(_fun_objc_blockDispatchEx_dispatch_once_example_1)() [line 29, column 3]\n " shape="box"]
"dispatch_once_example#DispatchEx#class.d3456446b1a2d5355c1767887cc8b62c_4" -> "dispatch_once_example#DispatchEx#class.d3456446b1a2d5355c1767887cc8b62c_3" ;
@ -41,11 +41,11 @@ digraph iCFG {
"dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_2" [label="2: Exit DispatchEx_dispatch_async_example \n " color=yellow style=filled]
"dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_3" [label="3: Return Stmt \n n$10=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_async_example_a:DispatchEx* [line 43, column 10]\n n$11=*n$10.x:int [line 43, column 10]\n *&return:int=n$11 [line 43, column 3]\n " shape="box"]
"dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_3" [label="3: Return Stmt \n n$7=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_async_example_a:DispatchEx* [line 43, column 10]\n n$8=*n$7.x:int [line 43, column 10]\n *&return:int=n$8 [line 43, column 3]\n " shape="box"]
"dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_3" -> "dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_2" ;
"dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_async_example_2) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$16); [line 39, column 18]\n n$15=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchEx_dispatch_async_example_2Class):unsigned long) [line 39, column 18]\n *&0$?%__sil_tmp_block_heap_var_n$16:Objc_blockDispatchEx_dispatch_async_example_2Class=n$15 [line 39, column 18]\n n$17=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_async_example_a:DispatchEx* [line 39, column 18]\n *n$15.DispatchEx_dispatch_async_example_a:DispatchEx*=n$17 [line 39, column 18]\n n$18=(_fun_objc_blockDispatchEx_dispatch_async_example_2)() [line 38, column 3]\n " shape="box"]
"dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_async_example_2) \n n$12=(_fun_objc_blockDispatchEx_dispatch_async_example_2)() [line 38, column 3]\n " shape="box"]
"dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_4" -> "dispatch_async_example#DispatchEx#class.5c5d7347be2a9654ad7e32514189fe54_3" ;
@ -60,11 +60,11 @@ digraph iCFG {
"objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_2" [label="2: Exit objc_blockDispatchEx_dispatch_async_example_2 \n " color=yellow style=filled]
"objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_3" [label="3: BinaryOperatorStmt: Assign \n n$12=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_async_example_a:DispatchEx* [line 41, column 20]\n *n$12.x:int=10 [line 41, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_3" [label="3: BinaryOperatorStmt: Assign \n n$9=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_async_example_a:DispatchEx* [line 41, column 20]\n *n$9.x:int=10 [line 41, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_3" -> "objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_2" ;
"objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_4" [label="4: BinaryOperatorStmt: Assign \n n$13=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 40, column 25]\n n$14=_fun_DispatchEx_init(n$13:DispatchEx*) virtual [line 40, column 24]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_async_example_a:DispatchEx*=n$14 [line 40, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_4" [label="4: BinaryOperatorStmt: Assign \n n$10=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 40, column 25]\n n$11=_fun_DispatchEx_init(n$10:DispatchEx*) virtual [line 40, column 24]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_async_example_a:DispatchEx*=n$11 [line 40, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_4" -> "objc_blockDispatchEx_dispatch_async_example_2.6510e5756fbcdafec0a18e8d5493346b_3" ;
@ -75,11 +75,11 @@ digraph iCFG {
"dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_2" [label="2: Exit DispatchEx_dispatch_after_example \n " color=yellow style=filled]
"dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_3" [label="3: Return Stmt \n n$19=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_after_example_a:DispatchEx* [line 54, column 10]\n n$20=*n$19.x:int [line 54, column 10]\n *&return:int=n$20 [line 54, column 3]\n " shape="box"]
"dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_3" [label="3: Return Stmt \n n$13=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_after_example_a:DispatchEx* [line 54, column 10]\n n$14=*n$13.x:int [line 54, column 10]\n *&return:int=n$14 [line 54, column 3]\n " shape="box"]
"dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_3" -> "dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_2" ;
"dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_after_example_3) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$25); [line 50, column 18]\n n$24=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchEx_dispatch_after_example_3Class):unsigned long) [line 50, column 18]\n *&0$?%__sil_tmp_block_heap_var_n$25:Objc_blockDispatchEx_dispatch_after_example_3Class=n$24 [line 50, column 18]\n n$26=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_after_example_a:DispatchEx* [line 50, column 18]\n *n$24.DispatchEx_dispatch_after_example_a:DispatchEx*=n$26 [line 50, column 18]\n n$27=(_fun_objc_blockDispatchEx_dispatch_after_example_3)() [line 48, column 3]\n " shape="box"]
"dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_after_example_3) \n n$18=(_fun_objc_blockDispatchEx_dispatch_after_example_3)() [line 48, column 3]\n " shape="box"]
"dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_4" -> "dispatch_after_example#DispatchEx#class.1d25856bd99eb1ef683c8f65ff46d05d_3" ;
@ -94,11 +94,11 @@ digraph iCFG {
"objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_2" [label="2: Exit objc_blockDispatchEx_dispatch_after_example_3 \n " color=yellow style=filled]
"objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_3" [label="3: BinaryOperatorStmt: Assign \n n$21=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_after_example_a:DispatchEx* [line 52, column 20]\n *n$21.x:int=10 [line 52, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_3" [label="3: BinaryOperatorStmt: Assign \n n$15=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_after_example_a:DispatchEx* [line 52, column 20]\n *n$15.x:int=10 [line 52, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_3" -> "objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_2" ;
"objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_4" [label="4: BinaryOperatorStmt: Assign \n n$22=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 51, column 25]\n n$23=_fun_DispatchEx_init(n$22:DispatchEx*) virtual [line 51, column 24]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_after_example_a:DispatchEx*=n$23 [line 51, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_4" [label="4: BinaryOperatorStmt: Assign \n n$16=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 51, column 25]\n n$17=_fun_DispatchEx_init(n$16:DispatchEx*) virtual [line 51, column 24]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_after_example_a:DispatchEx*=n$17 [line 51, column 20]\n " shape="box"]
"objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_4" -> "objc_blockDispatchEx_dispatch_after_example_3.380a17f45400d49d71ce1ba1c29a6ba4_3" ;
@ -109,11 +109,11 @@ digraph iCFG {
"dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_2" [label="2: Exit DispatchEx_dispatch_group_example \n " color=yellow style=filled]
"dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_3" [label="3: Return Stmt \n n$28=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_example_a:DispatchEx* [line 63, column 10]\n n$29=*n$28.x:int [line 63, column 10]\n *&return:int=n$29 [line 63, column 3]\n " shape="box"]
"dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_3" [label="3: Return Stmt \n n$19=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_example_a:DispatchEx* [line 63, column 10]\n n$20=*n$19.x:int [line 63, column 10]\n *&return:int=n$20 [line 63, column 3]\n " shape="box"]
"dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_3" -> "dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_2" ;
"dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_group_example_4) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$34); [line 59, column 57]\n n$33=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchEx_dispatch_group_example_4Class):unsigned long) [line 59, column 57]\n *&0$?%__sil_tmp_block_heap_var_n$34:Objc_blockDispatchEx_dispatch_group_example_4Class=n$33 [line 59, column 57]\n n$35=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_example_a:DispatchEx* [line 59, column 57]\n *n$33.DispatchEx_dispatch_group_example_a:DispatchEx*=n$35 [line 59, column 57]\n n$36=(_fun_objc_blockDispatchEx_dispatch_group_example_4)() [line 59, column 3]\n " shape="box"]
"dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_group_example_4) \n n$24=(_fun_objc_blockDispatchEx_dispatch_group_example_4)() [line 59, column 3]\n " shape="box"]
"dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_4" -> "dispatch_group_example#DispatchEx#class.f420a75c58eda6d3f0e5e05fadabfc18_3" ;
@ -128,11 +128,11 @@ digraph iCFG {
"objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_2" [label="2: Exit objc_blockDispatchEx_dispatch_group_example_4 \n " color=yellow style=filled]
"objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_3" [label="3: BinaryOperatorStmt: Assign \n n$30=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_example_a:DispatchEx* [line 61, column 5]\n *n$30.x:int=10 [line 61, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_3" [label="3: BinaryOperatorStmt: Assign \n n$21=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_example_a:DispatchEx* [line 61, column 5]\n *n$21.x:int=10 [line 61, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_3" -> "objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_2" ;
"objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_4" [label="4: BinaryOperatorStmt: Assign \n n$31=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 60, column 10]\n n$32=_fun_DispatchEx_init(n$31:DispatchEx*) virtual [line 60, column 9]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_example_a:DispatchEx*=n$32 [line 60, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_4" [label="4: BinaryOperatorStmt: Assign \n n$22=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 60, column 10]\n n$23=_fun_DispatchEx_init(n$22:DispatchEx*) virtual [line 60, column 9]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_example_a:DispatchEx*=n$23 [line 60, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_4" -> "objc_blockDispatchEx_dispatch_group_example_4.65d6b4827e06dfbede68939492105a46_3" ;
@ -143,11 +143,11 @@ digraph iCFG {
"dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_2" [label="2: Exit DispatchEx_dispatch_group_notify_example \n " color=yellow style=filled]
"dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_3" [label="3: Return Stmt \n n$37=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_notify_example_a:DispatchEx* [line 72, column 10]\n n$38=*n$37.x:int [line 72, column 10]\n *&return:int=n$38 [line 72, column 3]\n " shape="box"]
"dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_3" [label="3: Return Stmt \n n$25=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_notify_example_a:DispatchEx* [line 72, column 10]\n n$26=*n$25.x:int [line 72, column 10]\n *&return:int=n$26 [line 72, column 3]\n " shape="box"]
"dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_3" -> "dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_2" ;
"dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_group_notify_example_5) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$43); [line 68, column 57]\n n$42=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchEx_dispatch_group_notify_example_5Class):unsigned long) [line 68, column 57]\n *&0$?%__sil_tmp_block_heap_var_n$43:Objc_blockDispatchEx_dispatch_group_notify_example_5Class=n$42 [line 68, column 57]\n n$44=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_notify_example_a:DispatchEx* [line 68, column 57]\n *n$42.DispatchEx_dispatch_group_notify_example_a:DispatchEx*=n$44 [line 68, column 57]\n n$45=(_fun_objc_blockDispatchEx_dispatch_group_notify_example_5)() [line 68, column 3]\n " shape="box"]
"dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_group_notify_example_5) \n n$30=(_fun_objc_blockDispatchEx_dispatch_group_notify_example_5)() [line 68, column 3]\n " shape="box"]
"dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_4" -> "dispatch_group_notify_example#DispatchEx#class.f5cf54b07621c319cf7ead3b217760ed_3" ;
@ -162,11 +162,11 @@ digraph iCFG {
"objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_2" [label="2: Exit objc_blockDispatchEx_dispatch_group_notify_example_5 \n " color=yellow style=filled]
"objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_3" [label="3: BinaryOperatorStmt: Assign \n n$39=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_notify_example_a:DispatchEx* [line 70, column 5]\n *n$39.x:int=10 [line 70, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_3" [label="3: BinaryOperatorStmt: Assign \n n$27=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_notify_example_a:DispatchEx* [line 70, column 5]\n *n$27.x:int=10 [line 70, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_3" -> "objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_2" ;
"objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_4" [label="4: BinaryOperatorStmt: Assign \n n$40=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 69, column 10]\n n$41=_fun_DispatchEx_init(n$40:DispatchEx*) virtual [line 69, column 9]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_notify_example_a:DispatchEx*=n$41 [line 69, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_4" [label="4: BinaryOperatorStmt: Assign \n n$28=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 69, column 10]\n n$29=_fun_DispatchEx_init(n$28:DispatchEx*) virtual [line 69, column 9]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_group_notify_example_a:DispatchEx*=n$29 [line 69, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_4" -> "objc_blockDispatchEx_dispatch_group_notify_example_5.ded89d749d973a9d57680f9d68afb8a0_3" ;
@ -177,11 +177,11 @@ digraph iCFG {
"dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_2" [label="2: Exit DispatchEx_dispatch_barrier_example \n " color=yellow style=filled]
"dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_3" [label="3: Return Stmt \n n$46=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_barrier_example_a:DispatchEx* [line 81, column 10]\n n$47=*n$46.x:int [line 81, column 10]\n *&return:int=n$47 [line 81, column 3]\n " shape="box"]
"dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_3" [label="3: Return Stmt \n n$31=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_barrier_example_a:DispatchEx* [line 81, column 10]\n n$32=*n$31.x:int [line 81, column 10]\n *&return:int=n$32 [line 81, column 3]\n " shape="box"]
"dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_3" -> "dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_2" ;
"dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_barrier_example_6) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$52); [line 77, column 53]\n n$51=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchEx_dispatch_barrier_example_6Class):unsigned long) [line 77, column 53]\n *&0$?%__sil_tmp_block_heap_var_n$52:Objc_blockDispatchEx_dispatch_barrier_example_6Class=n$51 [line 77, column 53]\n n$53=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_barrier_example_a:DispatchEx* [line 77, column 53]\n *n$51.DispatchEx_dispatch_barrier_example_a:DispatchEx*=n$53 [line 77, column 53]\n n$54=(_fun_objc_blockDispatchEx_dispatch_barrier_example_6)() [line 77, column 3]\n " shape="box"]
"dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_4" [label="4: Call (_fun_objc_blockDispatchEx_dispatch_barrier_example_6) \n n$36=(_fun_objc_blockDispatchEx_dispatch_barrier_example_6)() [line 77, column 3]\n " shape="box"]
"dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_4" -> "dispatch_barrier_example#DispatchEx#class.a541a40f2f04e29019c58e563f7544d8_3" ;
@ -196,11 +196,11 @@ digraph iCFG {
"objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_2" [label="2: Exit objc_blockDispatchEx_dispatch_barrier_example_6 \n " color=yellow style=filled]
"objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_3" [label="3: BinaryOperatorStmt: Assign \n n$48=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_barrier_example_a:DispatchEx* [line 79, column 5]\n *n$48.x:int=10 [line 79, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_3" [label="3: BinaryOperatorStmt: Assign \n n$33=*&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_barrier_example_a:DispatchEx* [line 79, column 5]\n *n$33.x:int=10 [line 79, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_3" -> "objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_2" ;
"objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_4" [label="4: BinaryOperatorStmt: Assign \n n$49=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 78, column 10]\n n$50=_fun_DispatchEx_init(n$49:DispatchEx*) virtual [line 78, column 9]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_barrier_example_a:DispatchEx*=n$50 [line 78, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_4" [label="4: BinaryOperatorStmt: Assign \n n$34=_fun___objc_alloc_no_fail(sizeof(t=DispatchEx):unsigned long) [line 78, column 10]\n n$35=_fun_DispatchEx_init(n$34:DispatchEx*) virtual [line 78, column 9]\n *&#GB<codetoanalyze/objc/shared/block/dispatch_examples.m>$DispatchEx_dispatch_barrier_example_a:DispatchEx*=n$35 [line 78, column 5]\n " shape="box"]
"objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_4" -> "objc_blockDispatchEx_dispatch_barrier_example_6.644987ff1e6d0e0008d4ccdb7e8538ee_3" ;

@ -11,7 +11,7 @@ digraph iCFG {
"DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_3" -> "DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_5" ;
"DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_4" [label="4: Call (_fun_objc_blockDispatchInMacroTest_1) \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$4); [line 23, column 10]\n n$3=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockDispatchInMacroTest_1Class):unsigned long) [line 23, column 10]\n *&0$?%__sil_tmp_block_heap_var_n$4:Objc_blockDispatchInMacroTest_1Class=n$3 [line 23, column 10]\n n$5=*&#GB<codetoanalyze/objc/shared/block/dispatch_in_macro.m>$DispatchInMacroTest_static_storage:NSObject* [line 23, column 10]\n *n$3.DispatchInMacroTest_static_storage:NSObject*=n$5 [line 23, column 10]\n n$6=(_fun_objc_blockDispatchInMacroTest_1)() [line 23, column 10]\n " shape="box"]
"DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_4" [label="4: Call (_fun_objc_blockDispatchInMacroTest_1) \n n$3=(_fun_objc_blockDispatchInMacroTest_1)() [line 23, column 10]\n " shape="box"]
"DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_4" -> "DispatchInMacroTest.f5d56763274a479d06265a2f9562bef1_3" ;

@ -188,15 +188,15 @@ digraph iCFG {
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_3" -> "blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_2" ;
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_4" [label="4: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$46); [line 96, column 22]\n n$45=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockMemoryLeakExample_blockCapturedVarLeak_1Class):unsigned long) [line 96, column 22]\n *&0$?%__sil_tmp_block_heap_var_n$46:Objc_blockMemoryLeakExample_blockCapturedVarLeak_1Class=n$45 [line 96, column 22]\n n$47=*&x:int* [line 96, column 22]\n *n$45.x:int*=n$47 [line 96, column 22]\n n$42=*&x:int* [line 96, column 22]\n *&blk:_fn_(*)=(_fun_objc_blockMemoryLeakExample_blockCapturedVarLeak_1,n$42) [line 96, column 3]\n " shape="box"]
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_4" [label="4: DeclStmt \n n$42=*&x:int* [line 96, column 22]\n *&blk:_fn_(*)=(_fun_objc_blockMemoryLeakExample_blockCapturedVarLeak_1,n$42) [line 96, column 3]\n " shape="box"]
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_4" -> "blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_3" ;
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_5" [label="5: BinaryOperatorStmt: Assign \n n$48=*&x:int* [line 95, column 4]\n *n$48:int=2 [line 95, column 3]\n " shape="box"]
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_5" [label="5: BinaryOperatorStmt: Assign \n n$45=*&x:int* [line 95, column 4]\n *n$45:int=2 [line 95, column 3]\n " shape="box"]
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_5" -> "blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_4" ;
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_6" [label="6: DeclStmt \n n$49=_fun_malloc_no_fail(sizeof(t=int;nbytes=4):int) [line 94, column 12]\n *&x:int*=n$49 [line 94, column 3]\n " shape="box"]
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_6" [label="6: DeclStmt \n n$46=_fun_malloc_no_fail(sizeof(t=int;nbytes=4):int) [line 94, column 12]\n *&x:int*=n$46 [line 94, column 3]\n " shape="box"]
"blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_6" -> "blockCapturedVarLeak#MemoryLeakExample#instance.53bb018bc84d6a696dc756e20b5b3f52_5" ;
@ -207,19 +207,19 @@ digraph iCFG {
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_2" [label="2: Exit MemoryLeakExample_blockFreeNoLeakTODO \n " color=yellow style=filled]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_3" [label="3: Return Stmt \n n$50=*&blk:_fn_(*) [line 110, column 10]\n n$51=n$50() [line 110, column 10]\n *&return:int=n$51 [line 110, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_3" [label="3: Return Stmt \n n$47=*&blk:_fn_(*) [line 110, column 10]\n n$48=n$47() [line 110, column 10]\n *&return:int=n$48 [line 110, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_3" -> "blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_2" ;
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_4" [label="4: DeclStmt \n DECLARE_LOCALS(&0$?%__sil_tmp_block_heap_var_n$58); [line 105, column 22]\n n$57=_fun___objc_alloc_no_fail(sizeof(t=Objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2Class):unsigned long) [line 105, column 22]\n *&0$?%__sil_tmp_block_heap_var_n$58:Objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2Class=n$57 [line 105, column 22]\n n$59=*&x:int* [line 105, column 22]\n *n$57.x:int*=n$59 [line 105, column 22]\n n$52=*&x:int* [line 105, column 22]\n *&blk:_fn_(*)=(_fun_objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2,n$52) [line 105, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_4" [label="4: DeclStmt \n n$49=*&x:int* [line 105, column 22]\n *&blk:_fn_(*)=(_fun_objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2,n$49) [line 105, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_4" -> "blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_3" ;
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_5" [label="5: BinaryOperatorStmt: Assign \n n$60=*&x:int* [line 104, column 4]\n *n$60:int=2 [line 104, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_5" [label="5: BinaryOperatorStmt: Assign \n n$54=*&x:int* [line 104, column 4]\n *n$54:int=2 [line 104, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_5" -> "blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_4" ;
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_6" [label="6: DeclStmt \n n$61=_fun_malloc_no_fail(sizeof(t=int;nbytes=4):int) [line 103, column 12]\n *&x:int*=n$61 [line 103, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_6" [label="6: DeclStmt \n n$55=_fun_malloc_no_fail(sizeof(t=int;nbytes=4):int) [line 103, column 12]\n *&x:int*=n$55 [line 103, column 3]\n " shape="box"]
"blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_6" -> "blockFreeNoLeakTODO#MemoryLeakExample#instance.745cca07ccdb517734d79c9d7a1eaed8_5" ;
@ -252,15 +252,15 @@ digraph iCFG {
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_2" [label="2: Exit objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2 \n " color=yellow style=filled]
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_3" [label="3: Return Stmt \n n$53=*&i:int [line 108, column 12]\n *&return:int=n$53 [line 108, column 5]\n " shape="box"]
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_3" [label="3: Return Stmt \n n$50=*&i:int [line 108, column 12]\n *&return:int=n$50 [line 108, column 5]\n " shape="box"]
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_3" -> "objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_2" ;
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_4" [label="4: Call _fun_free \n n$54=*&x:int* [line 107, column 10]\n _fun_free(n$54:void*) [line 107, column 5]\n " shape="box"]
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_4" [label="4: Call _fun_free \n n$51=*&x:int* [line 107, column 10]\n _fun_free(n$51:void*) [line 107, column 5]\n " shape="box"]
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_4" -> "objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_3" ;
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_5" [label="5: DeclStmt \n n$55=*&x:int* [line 106, column 14]\n n$56=*n$55:int [line 106, column 13]\n *&i:int=n$56 [line 106, column 5]\n " shape="box"]
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_5" [label="5: DeclStmt \n n$52=*&x:int* [line 106, column 14]\n n$53=*n$52:int [line 106, column 13]\n *&i:int=n$53 [line 106, column 5]\n " shape="box"]
"objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_5" -> "objc_blockMemoryLeakExample_blockFreeNoLeakTODO_2.75d33bce4351c16a4939470302c57868_4" ;

Loading…
Cancel
Save