digraph iCFG { 69 [label="69: Assertion failure \n _fun___infer_fail(\"Assertion_failure\":void ) [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="box"] 69 -> 56 ; 68 [label="68: Prune (false branch) \n n$33=*&SIL_temp_conditional___62:int [line 34]\n NULLIFY(&SIL_temp_conditional___62,true); [line 34]\n PRUNE((n$33 == 0), false); [line 34]\n REMOVE_TEMPS(n$33); [line 34]\n " shape="invhouse"] 68 -> 61 ; 67 [label="67: Prune (true branch) \n n$33=*&SIL_temp_conditional___62:int [line 34]\n NULLIFY(&SIL_temp_conditional___62,true); [line 34]\n PRUNE((n$33 != 0), true); [line 34]\n REMOVE_TEMPS(n$33); [line 34]\n NULLIFY(&target,false); [line 34]\n " shape="invhouse"] 67 -> 69 ; 66 [label="66: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 34]\n *&SIL_temp_conditional___62:int =1 [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] 66 -> 62 ; 65 [label="65: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___62); [line 34]\n *&SIL_temp_conditional___62:int =0 [line 34]\n APPLY_ABSTRACTION; [line 34]\n " shape="box"] 65 -> 62 ; 64 [label="64: Prune (false branch) \n n$32=*&target:class A * [line 34]\n PRUNE((n$32 == 0), false); [line 34]\n REMOVE_TEMPS(n$32); [line 34]\n " shape="invhouse"] 64 -> 66 ; 63 [label="63: Prune (true branch) \n n$32=*&target:class A * [line 34]\n PRUNE((n$32 != 0), true); [line 34]\n REMOVE_TEMPS(n$32); [line 34]\n " shape="invhouse"] 63 -> 65 ; 62 [label="62: + \n " ] 62 -> 67 ; 62 -> 68 ; 61 [label="61: + \n " ] 61 -> 59 ; 61 -> 60 ; 60 [label="60: Prune (false branch) \n PRUNE((0 == 0), false); [line 32]\n " shape="invhouse"] 60 -> 57 ; 59 [label="59: Prune (true branch) \n PRUNE((0 != 0), true); [line 32]\n APPLY_ABSTRACTION; [line 32]\n " shape="invhouse"] 59 -> 58 ; 58 [label="58: + \n " ] 58 -> 63 ; 58 -> 64 ; 57 [label="57: Return Stmt \n n$31=*&target:class A * [line 33]\n n$30=_fun_A_x(n$31:class A *) virtual [line 33]\n *&return:int =n$30 [line 33]\n REMOVE_TEMPS(n$30,n$31); [line 33]\n NULLIFY(&target,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"] 57 -> 56 ; 56 [label="56: Exit test2 \n " color=yellow style=filled] 55 [label="55: Start test2\nFormals: target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 31]\n " color=yellow style=filled] 55 -> 58 ; 54 [label="54: Assertion failure \n _fun___infer_fail(\"Assertion_failure\":void ) [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"] 54 -> 40 ; 53 [label="53: Prune (false branch) \n n$25=*&SIL_temp_conditional___46:int [line 29]\n NULLIFY(&SIL_temp_conditional___46,true); [line 29]\n PRUNE((n$25 == 0), false); [line 29]\n REMOVE_TEMPS(n$25); [line 29]\n " shape="invhouse"] 53 -> 45 ; 52 [label="52: Prune (true branch) \n n$25=*&SIL_temp_conditional___46:int [line 29]\n NULLIFY(&SIL_temp_conditional___46,true); [line 29]\n PRUNE((n$25 != 0), true); [line 29]\n REMOVE_TEMPS(n$25); [line 29]\n NULLIFY(&target,false); [line 29]\n " shape="invhouse"] 52 -> 54 ; 51 [label="51: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___46); [line 29]\n *&SIL_temp_conditional___46:int =1 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] 51 -> 46 ; 50 [label="50: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___46); [line 29]\n *&SIL_temp_conditional___46:int =0 [line 29]\n APPLY_ABSTRACTION; [line 29]\n " shape="box"] 50 -> 46 ; 49 [label="49: Prune (false branch) \n PRUNE(((n$24 != (void *)0) == 0), false); [line 27]\n REMOVE_TEMPS(n$24); [line 27]\n " shape="invhouse"] 49 -> 51 ; 48 [label="48: Prune (true branch) \n PRUNE(((n$24 != (void *)0) != 0), true); [line 27]\n REMOVE_TEMPS(n$24); [line 27]\n " shape="invhouse"] 48 -> 50 ; 47 [label="47: BinaryOperatorStmt: NE \n n$24=*&target:class A * [line 27]\n " shape="box"] 47 -> 48 ; 47 -> 49 ; 46 [label="46: + \n " ] 46 -> 52 ; 46 -> 53 ; 45 [label="45: + \n " ] 45 -> 43 ; 45 -> 44 ; 44 [label="44: Prune (false branch) \n PRUNE((0 == 0), false); [line 27]\n " shape="invhouse"] 44 -> 41 ; 43 [label="43: Prune (true branch) \n PRUNE((0 != 0), true); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="invhouse"] 43 -> 42 ; 42 [label="42: + \n " ] 42 -> 47 ; 41 [label="41: Return Stmt \n n$23=*&target:class A * [line 28]\n n$22=_fun_A_x(n$23:class A *) virtual [line 28]\n *&return:int =n$22 [line 28]\n REMOVE_TEMPS(n$22,n$23); [line 28]\n NULLIFY(&target,false); [line 28]\n APPLY_ABSTRACTION; [line 28]\n " shape="box"] 41 -> 40 ; 40 [label="40: Exit test1 \n " color=yellow style=filled] 39 [label="39: Start test1\nFormals: target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled] 39 -> 42 ; 38 [label="38: BinaryOperatorStmt: Assign \n n$20=*&self:class A * [line 9]\n n$21=*&x:int [line 9]\n *n$20._x:int =n$21 [line -1]\n REMOVE_TEMPS(n$20,n$21); [line -1]\n NULLIFY(&self,false); [line -1]\n NULLIFY(&x,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 38 -> 37 ; 37 [label="37: Exit A_setX: \n " color=yellow style=filled] 36 [label="36: Start A_setX:\nFormals: self:class A * x:int \nLocals: \n DECLARE_LOCALS(&return); [line -1]\n " color=yellow style=filled] 36 -> 38 ; 35 [label="35: Return Stmt \n n$18=*&self:class A * [line -1]\n n$19=*n$18._x:int [line -1]\n *&return:int =n$19 [line -1]\n REMOVE_TEMPS(n$18,n$19); [line -1]\n NULLIFY(&self,false); [line -1]\n APPLY_ABSTRACTION; [line -1]\n " shape="box"] 35 -> 34 ; 34 [label="34: Exit A_x \n " color=yellow style=filled] 33 [label="33: Start A_x\nFormals: self:class A *\nLocals: \n DECLARE_LOCALS(&return); [line -1]\n " color=yellow style=filled] 33 -> 35 ; 32 [label="32: Assertion failure \n _fun___infer_fail(\"Assertion_failure\":void ) [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="box"] 32 -> 18 ; 31 [label="31: Prune (false branch) \n n$12=*&SIL_temp_conditional___24:int [line 22]\n NULLIFY(&SIL_temp_conditional___24,true); [line 22]\n PRUNE((n$12 == 0), false); [line 22]\n REMOVE_TEMPS(n$12); [line 22]\n " shape="invhouse"] 31 -> 23 ; 30 [label="30: Prune (true branch) \n n$12=*&SIL_temp_conditional___24:int [line 22]\n NULLIFY(&SIL_temp_conditional___24,true); [line 22]\n PRUNE((n$12 != 0), true); [line 22]\n REMOVE_TEMPS(n$12); [line 22]\n NULLIFY(&a,false); [line 22]\n " shape="invhouse"] 30 -> 32 ; 29 [label="29: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___24); [line 22]\n *&SIL_temp_conditional___24:int =1 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 29 -> 24 ; 28 [label="28: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___24); [line 22]\n *&SIL_temp_conditional___24:int =0 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"] 28 -> 24 ; 27 [label="27: Prune (false branch) \n PRUNE(((n$11 != (void *)0) == 0), false); [line 20]\n REMOVE_TEMPS(n$11); [line 20]\n " shape="invhouse"] 27 -> 29 ; 26 [label="26: Prune (true branch) \n PRUNE(((n$11 != (void *)0) != 0), true); [line 20]\n REMOVE_TEMPS(n$11); [line 20]\n " shape="invhouse"] 26 -> 28 ; 25 [label="25: BinaryOperatorStmt: NE \n n$11=*&a:class A * [line 20]\n " shape="box"] 25 -> 26 ; 25 -> 27 ; 24 [label="24: + \n " ] 24 -> 30 ; 24 -> 31 ; 23 [label="23: + \n " ] 23 -> 21 ; 23 -> 22 ; 22 [label="22: Prune (false branch) \n PRUNE((0 == 0), false); [line 20]\n " shape="invhouse"] 22 -> 19 ; 21 [label="21: Prune (true branch) \n PRUNE((0 != 0), true); [line 20]\n APPLY_ABSTRACTION; [line 20]\n " shape="invhouse"] 21 -> 20 ; 20 [label="20: + \n " ] 20 -> 25 ; 19 [label="19: Return Stmt \n n$10=*&a:class A * [line 21]\n n$9=_fun_A_x(n$10:class A *) virtual [line 21]\n *&return:int =n$9 [line 21]\n REMOVE_TEMPS(n$9,n$10); [line 21]\n NULLIFY(&a,false); [line 21]\n APPLY_ABSTRACTION; [line 21]\n " shape="box"] 19 -> 18 ; 18 [label="18: Exit A_initWithRequest: \n " color=yellow style=filled] 17 [label="17: Start A_initWithRequest:\nFormals: self:class A * a:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n NULLIFY(&self,false); [line 19]\n " color=yellow style=filled] 17 -> 20 ; 16 [label="16: Assertion failure \n _fun___infer_fail(\"Assertion_failure\":void ) [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="box"] 16 -> 2 ; 15 [label="15: Prune (false branch) \n n$3=*&SIL_temp_conditional___8:int [line 17]\n NULLIFY(&SIL_temp_conditional___8,true); [line 17]\n PRUNE((n$3 == 0), false); [line 17]\n REMOVE_TEMPS(n$3); [line 17]\n " shape="invhouse"] 15 -> 7 ; 14 [label="14: Prune (true branch) \n n$3=*&SIL_temp_conditional___8:int [line 17]\n NULLIFY(&SIL_temp_conditional___8,true); [line 17]\n PRUNE((n$3 != 0), true); [line 17]\n REMOVE_TEMPS(n$3); [line 17]\n NULLIFY(&target,false); [line 17]\n " shape="invhouse"] 14 -> 16 ; 13 [label="13: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 17]\n *&SIL_temp_conditional___8:int =1 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 13 -> 8 ; 12 [label="12: ConditinalStmt Branch \n DECLARE_LOCALS(&SIL_temp_conditional___8); [line 17]\n *&SIL_temp_conditional___8:int =0 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"] 12 -> 8 ; 11 [label="11: Prune (false branch) \n PRUNE(((n$2 != (void *)0) == 0), false); [line 15]\n REMOVE_TEMPS(n$2); [line 15]\n " shape="invhouse"] 11 -> 13 ; 10 [label="10: Prune (true branch) \n PRUNE(((n$2 != (void *)0) != 0), true); [line 15]\n REMOVE_TEMPS(n$2); [line 15]\n " shape="invhouse"] 10 -> 12 ; 9 [label="9: BinaryOperatorStmt: NE \n n$2=*&target:class A * [line 15]\n " shape="box"] 9 -> 10 ; 9 -> 11 ; 8 [label="8: + \n " ] 8 -> 14 ; 8 -> 15 ; 7 [label="7: + \n " ] 7 -> 5 ; 7 -> 6 ; 6 [label="6: Prune (false branch) \n PRUNE((0 == 0), false); [line 15]\n " shape="invhouse"] 6 -> 3 ; 5 [label="5: Prune (true branch) \n PRUNE((0 != 0), true); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"] 5 -> 4 ; 4 [label="4: + \n " ] 4 -> 9 ; 3 [label="3: Return Stmt \n n$1=*&target:class A * [line 16]\n n$0=_fun_A_x(n$1:class A *) virtual [line 16]\n *&return:int =n$0 [line 16]\n REMOVE_TEMPS(n$0,n$1); [line 16]\n NULLIFY(&target,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"] 3 -> 2 ; 2 [label="2: Exit A_addTarget: \n " color=yellow style=filled] 1 [label="1: Start A_addTarget:\nFormals: self:class A * target:class A *\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n NULLIFY(&self,false); [line 14]\n " color=yellow style=filled] 1 -> 4 ; }