@ -1,89 +1,81 @@
/* @generated */
digraph iCFG {
40 [label="40: DeclStmt \n _fun_Base_Base(&base:class Base *) [line 52]\n " shape="box"]
40 -> 39 ;
39 [label="39: DeclStmt \n n$2=_fun___cast(&base:class Base *,sizeof(class Derived ( sub )(cast)):void ) [line 53]\n *&derived:class Derived *=n$2 [line 53]\n " shape="box"]
39 -> 38 ;
38 [label="38: Return Stmt \n n$0=*&derived:class Derived * [line 54]\n n$1=*n$0.a:int [line 54]\n *&return:int =n$1 [line 54]\n " shape="box"]
38 [label="38: DeclStmt \n _fun_Base_Base(&base:class Base *) [line 52]\n " shape="box"]
38 -> 37 ;
37 [label="37: Exit cast_with_npe \n " color=yellow style=filled ]
37 [label="37: DeclStmt \n n$2=_fun___cast(&base:class Base *,sizeof(class Derived ( sub )(cast)):void ) [line 53]\n *&derived:class Derived *=n$2 [line 53]\n " shape="box"]
36 [label="36: Start cast_with_npe\nFormals: \nLocals: derived:class Derived * base:class Base \n DECLARE_LOCALS(&return,&derived,&base); [line 51]\n " color=yellow style=filled]
37 -> 36 ;
36 [label="36: Return Stmt \n n$0=*&derived:class Derived * [line 54]\n n$1=*n$0.a:int [line 54]\n *&return:int =n$1 [line 54]\n " shape="box"]
36 -> 40 ;
35 [label="35: DeclStmt \n _fun_Base_Base(&base:class Base *) [line 44]\n " shape="box" ]
36 -> 35 ;
35 [label="35: Exit cast_with_npe \n " color=yellow style=filled ]
35 -> 34 ;
34 [label="34: DeclStmt \n n$9=_fun___cast(&base:class Base *,sizeof(class Derived ( sub )(cast)):void ) [line 45]\n *&derived:class Derived *=n$9 [line 45]\n " shape="box"]
34 [label="34: Start cast_with_npe\nFormals: \nLocals: derived:class Derived * base:class Base \n DECLARE_LOCALS(&return,&derived,&base); [line 51]\n " color=yellow style=filled]
34 -> 33 ;
33 [label="33: DeclStmt \n *&_tmp:class Derived *&=&derived [line 46 ]\n " shape="box"]
34 -> 38 ;
33 [label="33: DeclStmt \n _fun_Base_Base(&base:class Base *) [line 44 ]\n " shape="box"]
33 -> 28 ;
33 -> 29 ;
32 [label="32: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *&=-1 [line 46]\n " shape="box"]
33 -> 32 ;
32 [label="32: DeclStmt \n n$10=_fun___cast(&base:class Base *,sizeof(class Derived ( sub )(cast)):void ) [line 45]\n *&derived:class Derived *=n$10 [line 45]\n " shape="box"]
32 -> 27 ;
31 [label="31: Return Stmt \n _fun_WrongParameterException_WrongParameterException(&0$?%__sil_tmpSIL_materialize_temp__n$6:class WrongParameterException *,\"derived\":_Bool ,\"Base is not Derived\":char *) [line 46]\n _fun_WrongParameterException_WrongParameterException(&return:int *,&0$?%__sil_tmpSIL_materialize_temp__n$6:class WrongParameterException &) [line 46]\n " shape="box"]
32 -> 31 ;
31 [label="31: DeclStmt \n *&_tmp:class Derived *&=&derived [line 46]\n " shape="box"]
31 -> 25 ;
30 [label="30: ConditinalStmt Branch \n n$5=*&_tmp:class Derived *& [line 46]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *&=n$5 [line 46]\n " shape="box"]
31 -> 27 ;
31 -> 28 ;
30 [label="30: ConditinalStmt Branch \n _fun_WrongParameterException_WrongParameterException(&0$?%__sil_tmpSIL_materialize_temp__n$7:class WrongParameterException *,\"derived\":_Bool ,\"Base is not Derived\":char *) [line 46]\n _fun_WrongParameterException_WrongParameterException(&0$?%__sil_tmp__temp_construct_n$6:class WrongParameterException *,&0$?%__sil_tmpSIL_materialize_temp__n$7:class WrongParameterException &) [line 46]\n _fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$6:class WrongParameterException ) [line 46]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *&=-1 [line 46]\n " shape="box"]
30 -> 27 ;
29 [label="29: Prune (false branch) \n n$3=*&_tmp:class Derived *& [line 46]\n n$4=*n$3:class Derived * [line 46]\n PRUNE((n$4 == 0), false); [line 46]\n " shape="invhouse "]
30 -> 26 ;
29 [label="29: ConditinalStmt Branch \n n$5=*&_tmp:class Derived *& [line 46]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *&=n$5 [line 46]\n " shape="box "]
29 -> 31 ;
28 [label="28: Prune (tru e branch) \n n$3=*&_tmp:class Derived *& [line 46]\n n$4=*n$3:class Derived * [line 46]\n PRUNE((n$4 != 0), tru e); [line 46]\n " shape="invhouse"]
29 -> 26 ;
28 [label="28: Prune (fals e branch) \n n$3=*&_tmp:class Derived *& [line 46]\n n$4=*n$3:class Derived * [line 46]\n PRUNE((n$4 == 0), fals e); [line 46]\n " shape="invhouse"]
28 -> 30 ;
27 [label="27: + \n " ]
27 [label="27: Prune (true branch) \n n$3=*&_tmp:class Derived *& [line 46]\n n$4=*n$3:class Derived * [line 46]\n PRUNE((n$4 != 0), true); [line 46]\n " shape="invhouse" ]
27 -> 26 ;
26 [label="26: Return Stmt \n n$0=*&derived:class Derived * [line 47]\n n$1=*n$0.a:int [line 47]\n *&return:int =n$1 [line 47]\n " shape="box" ]
27 -> 29 ;
26 [label="26: + \n " ]
26 -> 25 ;
25 [label="25: Exit cast_with_npe_avoided_by_enforce \n " color=yellow style=filled ]
25 [label="25: Return Stmt \n n$0=*&derived:class Derived * [line 47]\n n$1=*n$0.a:int [line 47]\n *&return:int =n$1 [line 47]\n " shape="box" ]
24 [label="24: Start cast_with_npe_avoided_by_enforce\nFormals: \nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *& 0$?%__sil_tmpSIL_materialize_temp__n$6:class WrongParameterException _tmp:class Derived *& derived:class Derived * base:class Base \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmpSIL_materialize_temp__n$6,&_tmp,&derived,&base); [line 43]\n " color=yellow style=filled]
25 -> 24 ;
24 [label="24: Exit cast_with_npe_avoided_by_enforce \n " color=yellow style=filled]
24 -> 35 ;
23 [label="23: DeclStmt \n n$9=*&certificate:class Base & [line 38]\n n$10=_fun___cast(n$9:class Base *,sizeof(class Derived ( sub )(cast)):void ) [line 38]\n *&cert:class Derived *=n$10 [line 38]\n " shape="box"]
23 [label="23: Start cast_with_npe_avoided_by_enforce\nFormals: \nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *& 0$?%__sil_tmp__temp_construct_n$6:class WrongParameterException 0$?%__sil_tmpSIL_materialize_temp__n$7:class WrongParameterException _tmp:class Derived *& derived:class Derived * base:class Base \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmp__temp_construct_n$6,&0$?%__sil_tmpSIL_materialize_temp__n$7,&_tmp,&derived,&base); [line 43]\n " color=yellow style=filled]
23 -> 22 ;
22 [label="22: DeclStmt \n *&_tmp:class Derived *&=&cert [line 39 ]\n " shape="box"]
23 -> 33 ;
22 [label="22: DeclStmt \n n$10=*&certificate:class Base & [line 38]\n n$11=_fun___cast(n$10:class Base *,sizeof(class Derived ( sub )(cast)):void ) [line 38]\n *&cert:class Derived *=n$11 [line 38 ]\n " shape="box"]
22 -> 17 ;
22 -> 18 ;
21 [label="21: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *&=-1 [line 39]\n " shape="box"]
22 -> 21 ;
21 [label="21: DeclStmt \n *&_tmp:class Derived *&=&cert [line 39]\n " shape="box"]
21 -> 16 ;
20 [label="20: Return Stmt \n _fun_WrongParameterException_WrongParameterException(&0$?%__sil_tmpSIL_materialize_temp__n$6:class WrongParameterException *,\"cert\":_Bool ,\"Base is not Derived\":char *) [line 39]\n _fun_WrongParameterException_WrongParameterException(&return:int *,&0$?%__sil_tmpSIL_materialize_temp__n$6:class WrongParameterException &) [line 39]\n " shape="box"]
21 -> 17 ;
21 -> 18 ;
20 [label="20: ConditinalStmt Branch \n _fun_WrongParameterException_WrongParameterException(&0$?%__sil_tmpSIL_materialize_temp__n$7:class WrongParameterException *,\"cert\":_Bool ,\"Base is not Derived\":char *) [line 39]\n _fun_WrongParameterException_WrongParameterException(&0$?%__sil_tmp__temp_construct_n$6:class WrongParameterException *,&0$?%__sil_tmpSIL_materialize_temp__n$7:class WrongParameterException &) [line 39]\n _fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$6:class WrongParameterException ) [line 39]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *&=-1 [line 39]\n " shape="box"]
20 -> 14 ;
20 -> 16 ;
19 [label="19: ConditinalStmt Branch \n n$5=*&_tmp:class Derived *& [line 39]\n *&0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *&=n$5 [line 39]\n " shape="box"]
@ -107,10 +99,10 @@ digraph iCFG {
14 [label="14: Exit cast_with_no_npe \n " color=yellow style=filled]
13 [label="13: Start cast_with_no_npe\nFormals: certificate:class Base &\nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *& 0$?%__sil_tmpSIL_materialize_temp__n$6 :class WrongParameterException _tmp:class Derived *& cert:class Derived * \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmpSIL_materialize_temp__n$6 ,&_tmp,&cert); [line 37]\n " color=yellow style=filled]
13 [label="13: Start cast_with_no_npe\nFormals: certificate:class Base &\nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$2:class Derived *& 0$?%__sil_tmp__temp_construct_n$6:class WrongParameterException 0$?%__sil_tmpSIL_materialize_temp__n$7 :class WrongParameterException _tmp:class Derived *& cert:class Derived * \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$2,&0$?%__sil_tmp__temp_construct_n$6,&0$?%__sil_tmpSIL_materialize_temp__n$7 ,&_tmp,&cert); [line 37]\n " color=yellow style=filled]
13 -> 23 ;
13 -> 22 ;
12 [label="12: Exit Base_Base \n " color=yellow style=filled]