|
|
|
digraph iCFG {
|
|
|
|
23 [label="23: DeclStmt \n *&a:int =3 [line 28]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
23 -> 22 ;
|
|
|
|
22 [label="22: DeclStmt \n *&p:int *=&a [line 29]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
22 -> 21 ;
|
|
|
|
21 [label="21: Call _fun_fun_p \n n$5=*&p:int * [line 31]\n n$6=_fun_fun_p(n$5:int *) [line 31]\n REMOVE_TEMPS(n$5,n$6); [line 31]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
21 -> 20 ;
|
|
|
|
20 [label="20: Call _fun_fun_v \n n$2=*&p:int * [line 32]\n n$3=*n$2:int [line 32]\n n$4=_fun_fun_v(n$3:int ) [line 32]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 32]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
20 -> 19 ;
|
|
|
|
19 [label="19: Call _fun_fun_r \n n$0=*&p:int * [line 33]\n n$1=_fun_fun_r(n$0:int &) [line 33]\n REMOVE_TEMPS(n$0,n$1); [line 33]\n NULLIFY(&p,false); [line 33]\n NULLIFY(&a,false); [line 33]\n APPLY_ABSTRACTION; [line 33]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
19 -> 18 ;
|
|
|
|
18 [label="18: Exit unbox_ptr \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
17 [label="17: Start unbox_ptr\nFormals: \nLocals: p:int * a:int \n DECLARE_LOCALS(&return,&p,&a); [line 27]\n NULLIFY(&p,false); [line 27]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
17 -> 23 ;
|
|
|
|
16 [label="16: DeclStmt \n *&a:int =3 [line 18]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
16 -> 15 ;
|
|
|
|
15 [label="15: DeclStmt \n *&r:int &=&a [line 19]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
15 -> 14 ;
|
|
|
|
14 [label="14: Call _fun_fun_p \n n$5=*&r:int & [line 21]\n n$6=_fun_fun_p(n$5:int *) [line 21]\n REMOVE_TEMPS(n$5,n$6); [line 21]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
14 -> 13 ;
|
|
|
|
13 [label="13: Call _fun_fun_v \n n$2=*&r:int & [line 22]\n n$3=*n$2:int [line 22]\n n$4=_fun_fun_v(n$3:int ) [line 22]\n REMOVE_TEMPS(n$2,n$3,n$4); [line 22]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
13 -> 12 ;
|
|
|
|
12 [label="12: Call _fun_fun_r \n n$0=*&r:int & [line 23]\n n$1=_fun_fun_r(n$0:int &) [line 23]\n REMOVE_TEMPS(n$0,n$1); [line 23]\n NULLIFY(&r,false); [line 23]\n NULLIFY(&a,false); [line 23]\n APPLY_ABSTRACTION; [line 23]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
12 -> 11 ;
|
|
|
|
11 [label="11: Exit unbox_ref \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
10 [label="10: Start unbox_ref\nFormals: \nLocals: r:int & a:int \n DECLARE_LOCALS(&return,&r,&a); [line 17]\n NULLIFY(&r,false); [line 17]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
10 -> 16 ;
|
|
|
|
9 [label="9: Return Stmt \n n$0=*&p:int & [line 12]\n n$1=*n$0:int [line 12]\n *&return:int =n$1 [line 12]\n REMOVE_TEMPS(n$0,n$1); [line 12]\n NULLIFY(&p,false); [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
9 -> 8 ;
|
|
|
|
8 [label="8: Exit fun_r \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
7 [label="7: Start fun_r\nFormals: p:int &\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
7 -> 9 ;
|
|
|
|
6 [label="6: Return Stmt \n n$0=*&p:int [line 11]\n *&return:int =n$0 [line 11]\n REMOVE_TEMPS(n$0); [line 11]\n NULLIFY(&p,false); [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
6 -> 5 ;
|
|
|
|
5 [label="5: Exit fun_v \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
4 [label="4: Start fun_v\nFormals: p:int \nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
4 -> 6 ;
|
|
|
|
3 [label="3: Return Stmt \n n$0=*&p:int * [line 10]\n n$1=*n$0:int [line 10]\n *&return:int =n$1 [line 10]\n REMOVE_TEMPS(n$0,n$1); [line 10]\n NULLIFY(&p,false); [line 10]\n APPLY_ABSTRACTION; [line 10]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
3 -> 2 ;
|
|
|
|
2 [label="2: Exit fun_p \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
1 [label="1: Start fun_p\nFormals: p:int *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
1 -> 3 ;
|
|
|
|
}
|