|
|
|
/* @generated */
|
|
|
|
digraph iCFG {
|
|
|
|
"A_loggerName3" [label="3: Return Stmt \n n$14=_fun_NSStringFromClass(sizeof(class A ):unsigned long ) [line 91]\n *&return:class NSString *=n$14 [line 91]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_loggerName3" -> "A_loggerName2" ;
|
|
|
|
"A_loggerName2" [label="2: Exit A_loggerName \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_loggerName1" [label="1: Start A_loggerName\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 90]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_loggerName1" -> "A_loggerName3" ;
|
|
|
|
"A_calling_super3" [label="3: Message Call: test_class \n _fun_C_test_class() [line 83]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_calling_super3" -> "A_calling_super2" ;
|
|
|
|
"A_calling_super2" [label="2: Exit A_calling_super \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_calling_super1" [label="1: Start A_calling_super\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 82]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_calling_super1" -> "A_calling_super3" ;
|
|
|
|
"A_use_class_in_other_ways:3" [label="3: Return Stmt \n n$8=*&object:class B * [line 79]\n n$10=_fun_B_isC:(n$8:class B *,sizeof(class A ):unsigned long ) virtual [line 79]\n *&return:_Bool =n$10 [line 79]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_use_class_in_other_ways:3" -> "A_use_class_in_other_ways:2" ;
|
|
|
|
"A_use_class_in_other_ways:2" [label="2: Exit A_use_class_in_other_ways: \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_use_class_in_other_ways:1" [label="1: Start A_use_class_in_other_ways:\nFormals: self:class A * object:class B *\nLocals: \n DECLARE_LOCALS(&return); [line 78]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_use_class_in_other_ways:1" -> "A_use_class_in_other_ways:3" ;
|
|
|
|
"A_test_class2" [label="2: Exit A_test_class \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_test_class1" [label="1: Start A_test_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_test_class1" -> "A_test_class2" ;
|
|
|
|
"A_t4" [label="4: DeclStmt \n n$6=_fun___objc_alloc_no_fail(sizeof(class B ):unsigned long ) [line 74]\n n$7=_fun_NSObject_init(n$6:class B *) virtual [line 74]\n *&b:class B *=n$7 [line 74]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_t4" -> "A_t3" ;
|
|
|
|
"A_t3" [label="3: Message Call: b_m \n _fun_B_b_m() [line 75]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_t3" -> "A_t2" ;
|
|
|
|
"A_t2" [label="2: Exit A_t \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_t1" [label="1: Start A_t\nFormals: self:class A *\nLocals: b:class B * \n DECLARE_LOCALS(&return,&b); [line 73]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_t1" -> "A_t4" ;
|
|
|
|
"A_call_class_instance3" [label="3: Message Call: test_class \n _fun_A_test_class() [line 66]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_class_instance3" -> "A_call_class_instance2" ;
|
|
|
|
"A_call_class_instance2" [label="2: Exit A_call_class_instance \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_class_instance1" [label="1: Start A_call_class_instance\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 65]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_class_instance1" -> "A_call_class_instance3" ;
|
|
|
|
"A_call_test_class3" [label="3: Message Call: test_class \n _fun_A_test_class() [line 54]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_test_class3" -> "A_call_test_class2" ;
|
|
|
|
"A_call_test_class2" [label="2: Exit A_call_test_class \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_test_class1" [label="1: Start A_call_test_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 53]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_test_class1" -> "A_call_test_class3" ;
|
|
|
|
"A_init3" [label="3: Message Call: init \n n$11=*&self:class A * [line 87]\n n$12=_fun_NSObject_init(n$11:class A *) [line 87]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_init3" -> "A_init2" ;
|
|
|
|
"A_init2" [label="2: Exit A_init \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_init1" [label="1: Start A_init\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 86]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_init1" -> "A_init3" ;
|
|
|
|
"A_call_test3" [label="3: Message Call: test \n n$0=*&self:class A * [line 47]\n _fun_A_test(n$0:class A *) virtual [line 47]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_test3" -> "A_call_test2" ;
|
|
|
|
"A_call_test2" [label="2: Exit A_call_test \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_test1" [label="1: Start A_call_test\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 46]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_test1" -> "A_call_test3" ;
|
|
|
|
"B_b_m2" [label="2: Exit B_b_m \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"B_b_m1" [label="1: Start B_b_m\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"B_b_m1" -> "B_b_m2" ;
|
|
|
|
"A_call_class_instance_with_class_name3" [label="3: Message Call: test_class \n _fun_A_test_class() [line 70]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_class_instance_with_class_name3" -> "A_call_class_instance_with_class_name2" ;
|
|
|
|
"A_call_class_instance_with_class_name2" [label="2: Exit A_call_class_instance_with_class_name \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_class_instance_with_class_name1" [label="1: Start A_call_class_instance_with_class_name\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 69]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_class_instance_with_class_name1" -> "A_call_class_instance_with_class_name3" ;
|
|
|
|
"B_isC:3" [label="3: Return Stmt \n *&return:_Bool =1 [line 24]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"B_isC:3" -> "B_isC:2" ;
|
|
|
|
"B_isC:2" [label="2: Exit B_isC: \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"B_isC:1" [label="1: Start B_isC:\nFormals: self:class B * aClass:struct objc_class *\nLocals: \n DECLARE_LOCALS(&return); [line 23]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"B_isC:1" -> "B_isC:3" ;
|
|
|
|
"A_call_alloc_instance3" [label="3: Call alloc \n n$3=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 62]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_alloc_instance3" -> "A_call_alloc_instance2" ;
|
|
|
|
"A_call_alloc_instance2" [label="2: Exit A_call_alloc_instance \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_alloc_instance1" [label="1: Start A_call_alloc_instance\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 61]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_alloc_instance1" -> "A_call_alloc_instance3" ;
|
|
|
|
"A_used_in_binary_op:9" [label="9: Return Stmt \n *&return:int =0 [line 98]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:9" -> "A_used_in_binary_op:2" ;
|
|
|
|
"A_used_in_binary_op:8" [label="8: Return Stmt \n *&return:int =1 [line 96]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:8" -> "A_used_in_binary_op:2" ;
|
|
|
|
"A_used_in_binary_op:7" [label="7: Prune (false branch) \n PRUNE(((sizeof(class A ) != n$15) == 0), false); [line 95]\n " shape="invhouse"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:7" -> "A_used_in_binary_op:9" ;
|
|
|
|
"A_used_in_binary_op:6" [label="6: Prune (true branch) \n PRUNE(((sizeof(class A ) != n$15) != 0), true); [line 95]\n " shape="invhouse"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:6" -> "A_used_in_binary_op:8" ;
|
|
|
|
"A_used_in_binary_op:5" [label="5: BinaryOperatorStmt: NE \n n$15=*&c:struct objc_class * [line 95]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:5" -> "A_used_in_binary_op:6" ;
|
|
|
|
"A_used_in_binary_op:5" -> "A_used_in_binary_op:7" ;
|
|
|
|
"A_used_in_binary_op:4" [label="4: between_join_and_exit \n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:4" -> "A_used_in_binary_op:2" ;
|
|
|
|
"A_used_in_binary_op:3" [label="3: + \n " ]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:3" -> "A_used_in_binary_op:4" ;
|
|
|
|
"A_used_in_binary_op:2" [label="2: Exit A_used_in_binary_op: \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:1" [label="1: Start A_used_in_binary_op:\nFormals: c:struct objc_class *\nLocals: \n DECLARE_LOCALS(&return); [line 94]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_used_in_binary_op:1" -> "A_used_in_binary_op:5" ;
|
|
|
|
"A_call_alloc_class3" [label="3: Call alloc \n n$1=_fun___objc_alloc_no_fail(sizeof(class A ):unsigned long ) [line 58]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_alloc_class3" -> "A_call_alloc_class2" ;
|
|
|
|
"A_call_alloc_class2" [label="2: Exit A_call_alloc_class \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_alloc_class1" [label="1: Start A_call_alloc_class\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 57]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_call_alloc_class1" -> "A_call_alloc_class3" ;
|
|
|
|
"A_test2" [label="2: Exit A_test \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_test1" [label="1: Start A_test\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 43]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"A_test1" -> "A_test2" ;
|
|
|
|
}
|