You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
6.4 KiB
134 lines
6.4 KiB
digraph iCFG {
|
|
34 [label="34: DeclStmt \n _fun_X_X(&a:class X *) [line 26]\n " shape="box"]
|
|
|
|
|
|
34 -> 28 ;
|
|
33 [label="33: DeclStmt \n n$7=*&SIL_temp_conditional___n$1:class X [line 27]\n *&SIL_materialize_temp__n$0:class X =n$7 [line 27]\n _fun_X_X(&x:class X *,&SIL_materialize_temp__n$0:class X &) [line 27]\n REMOVE_TEMPS(n$7); [line 27]\n NULLIFY(&SIL_temp_conditional___n$1,false); [line 27]\n NULLIFY(&SIL_materialize_temp__n$0,false); [line 27]\n NULLIFY(&SIL_materialize_temp__n$5,false); [line 27]\n NULLIFY(&__temp_return_n$3,false); [line 27]\n NULLIFY(&a,false); [line 27]\n NULLIFY(&x,false); [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"]
|
|
|
|
|
|
33 -> 26 ;
|
|
32 [label="32: ConditinalStmt Branch \n _fun_X_X(&SIL_materialize_temp__n$0:class X *,&a:class X &) [line 27]\n *&SIL_temp_conditional___n$1:class X =&SIL_materialize_temp__n$0 [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"]
|
|
|
|
|
|
32 -> 27 ;
|
|
31 [label="31: ConditinalStmt Branch \n _fun_getX(&SIL_materialize_temp__n$5:class X *) [line 27]\n _fun_X_X(&SIL_materialize_temp__n$0:class X *,&SIL_materialize_temp__n$5:class X &) [line 27]\n *&SIL_temp_conditional___n$1:class X =&SIL_materialize_temp__n$0 [line 27]\n APPLY_ABSTRACTION; [line 27]\n " shape="box"]
|
|
|
|
|
|
31 -> 27 ;
|
|
30 [label="30: Prune (false branch) \n PRUNE((n$4 == 0), false); [line 27]\n REMOVE_TEMPS(n$4); [line 27]\n " shape="invhouse"]
|
|
|
|
|
|
30 -> 32 ;
|
|
29 [label="29: Prune (true branch) \n PRUNE((n$4 != 0), true); [line 27]\n REMOVE_TEMPS(n$4); [line 27]\n " shape="invhouse"]
|
|
|
|
|
|
29 -> 31 ;
|
|
28 [label="28: Call _fun_X_operator bool \n _fun_getX(&__temp_return_n$3:class X *) [line 27]\n n$4=_fun_X_operator bool(&__temp_return_n$3:class X &) [line 27]\n " shape="box"]
|
|
|
|
|
|
28 -> 29 ;
|
|
28 -> 30 ;
|
|
27 [label="27: + \n " ]
|
|
|
|
|
|
27 -> 33 ;
|
|
26 [label="26: Exit conditional \n " color=yellow style=filled]
|
|
|
|
|
|
25 [label="25: Start conditional\nFormals: \nLocals: x:class X SIL_materialize_temp__n$0:class X SIL_temp_conditional___n$1:class X __temp_return_n$3:class X SIL_materialize_temp__n$5:class X a:class X \n DECLARE_LOCALS(&return,&x,&SIL_materialize_temp__n$0,&SIL_temp_conditional___n$1,&__temp_return_n$3,&SIL_materialize_temp__n$5,&a); [line 25]\n NULLIFY(&SIL_temp_conditional___n$1,false); [line 25]\n " color=yellow style=filled]
|
|
|
|
|
|
25 -> 34 ;
|
|
24 [label="24: DeclStmt \n _fun_X_X(&a:class X *) [line 21]\n " shape="box"]
|
|
|
|
|
|
24 -> 22 ;
|
|
23 [label="23: DeclStmt \n n$5=*&SIL_temp_conditional___n$2:class X [line 22]\n *&SIL_materialize_temp__n$0:class X =n$5 [line 22]\n _fun_X_X(&x:class X *,&SIL_materialize_temp__n$0:class X &) [line 22]\n REMOVE_TEMPS(n$5); [line 22]\n NULLIFY(&SIL_temp_conditional___n$2,false); [line 22]\n NULLIFY(&SIL_materialize_temp__n$0,false); [line 22]\n NULLIFY(&SIL_materialize_temp__n$4,false); [line 22]\n NULLIFY(&a,false); [line 22]\n NULLIFY(&x,false); [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"]
|
|
|
|
|
|
23 -> 15 ;
|
|
22 [label="22: BinaryConditinalStmt Init \n _fun_getX(&SIL_materialize_temp__n$0:class X *) [line 22]\n " shape="box"]
|
|
|
|
|
|
22 -> 17 ;
|
|
21 [label="21: ConditinalStmt Branch \n _fun_X_X(&SIL_materialize_temp__n$0:class X *,&a:class X &) [line 22]\n *&SIL_temp_conditional___n$2:class X =&SIL_materialize_temp__n$0 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"]
|
|
|
|
|
|
21 -> 16 ;
|
|
20 [label="20: ConditinalStmt Branch \n *&SIL_materialize_temp__n$4:class X =&SIL_materialize_temp__n$0 [line 22]\n _fun_X_X(&SIL_materialize_temp__n$0:class X *,&SIL_materialize_temp__n$4:class X &) [line 22]\n *&SIL_temp_conditional___n$2:class X =&SIL_materialize_temp__n$0 [line 22]\n APPLY_ABSTRACTION; [line 22]\n " shape="box"]
|
|
|
|
|
|
20 -> 16 ;
|
|
19 [label="19: Prune (false branch) \n PRUNE((n$3 == 0), false); [line 22]\n REMOVE_TEMPS(n$3); [line 22]\n " shape="invhouse"]
|
|
|
|
|
|
19 -> 21 ;
|
|
18 [label="18: Prune (true branch) \n PRUNE((n$3 != 0), true); [line 22]\n REMOVE_TEMPS(n$3); [line 22]\n " shape="invhouse"]
|
|
|
|
|
|
18 -> 20 ;
|
|
17 [label="17: Call _fun_X_operator bool \n n$3=_fun_X_operator bool(&SIL_materialize_temp__n$0:class X &) [line 22]\n " shape="box"]
|
|
|
|
|
|
17 -> 18 ;
|
|
17 -> 19 ;
|
|
16 [label="16: + \n " ]
|
|
|
|
|
|
16 -> 23 ;
|
|
15 [label="15: Exit binaryConditional \n " color=yellow style=filled]
|
|
|
|
|
|
14 [label="14: Start binaryConditional\nFormals: \nLocals: x:class X SIL_materialize_temp__n$0:class X SIL_temp_conditional___n$2:class X SIL_materialize_temp__n$4:class X a:class X \n DECLARE_LOCALS(&return,&x,&SIL_materialize_temp__n$0,&SIL_temp_conditional___n$2,&SIL_materialize_temp__n$4,&a); [line 20]\n NULLIFY(&SIL_temp_conditional___n$2,false); [line 20]\n " color=yellow style=filled]
|
|
|
|
|
|
14 -> 24 ;
|
|
13 [label="13: DeclStmt \n _fun_X_X(&x:class X *) [line 15]\n " shape="box"]
|
|
|
|
|
|
13 -> 12 ;
|
|
12 [label="12: Return Stmt \n n$0=*&__return_param:class X * [line 16]\n _fun_X_X(n$0:class X *,&x:class X &) [line 16]\n REMOVE_TEMPS(n$0); [line 16]\n NULLIFY(&__return_param,false); [line 16]\n NULLIFY(&x,false); [line 16]\n APPLY_ABSTRACTION; [line 16]\n " shape="box"]
|
|
|
|
|
|
12 -> 11 ;
|
|
11 [label="11: Exit getX \n " color=yellow style=filled]
|
|
|
|
|
|
10 [label="10: Start getX\nFormals: __return_param:class X *\nLocals: x:class X \n DECLARE_LOCALS(&return,&x); [line 14]\n " color=yellow style=filled]
|
|
|
|
|
|
10 -> 13 ;
|
|
9 [label="9: Exit X_X \n " color=yellow style=filled]
|
|
|
|
|
|
8 [label="8: Start X_X\nFormals: this:class X * __param_0:class X &\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&__param_0,false); [line 10]\n NULLIFY(&this,false); [line 10]\n " color=yellow style=filled]
|
|
|
|
|
|
8 -> 9 ;
|
|
7 [label="7: Exit X_X \n " color=yellow style=filled]
|
|
|
|
|
|
6 [label="6: Start X_X\nFormals: this:class X * __param_0:class X &\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&__param_0,false); [line 10]\n NULLIFY(&this,false); [line 10]\n " color=yellow style=filled]
|
|
|
|
|
|
6 -> 7 ;
|
|
5 [label="5: Exit X_X \n " color=yellow style=filled]
|
|
|
|
|
|
4 [label="4: Start X_X\nFormals: this:class X *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n NULLIFY(&this,false); [line 10]\n " color=yellow style=filled]
|
|
|
|
|
|
4 -> 5 ;
|
|
3 [label="3: Return Stmt \n *&return:_Bool =1 [line 11]\n APPLY_ABSTRACTION; [line 11]\n " shape="box"]
|
|
|
|
|
|
3 -> 2 ;
|
|
2 [label="2: Exit X_operator bool \n " color=yellow style=filled]
|
|
|
|
|
|
1 [label="1: Start X_operator bool\nFormals: this:class X *\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n NULLIFY(&this,false); [line 11]\n " color=yellow style=filled]
|
|
|
|
|
|
1 -> 3 ;
|
|
}
|