|
|
|
digraph iCFG {
|
|
|
|
10 [label="10: DeclStmt \n *&a:int =10 [line 11]\n NULLIFY(&a,false); [line 11]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
10 -> 9 ;
|
|
|
|
9 [label="9: DeclStmt \n *&b:int =0 [line 12]\n APPLY_ABSTRACTION; [line 12]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
9 -> 4 ;
|
|
|
|
8 [label="8: BinaryOperatorStmt: Assign \n *&a:int =1 [line 14]\n NULLIFY(&a,false); [line 14]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
8 -> 5 ;
|
|
|
|
7 [label="7: Prune (false branch) \n PRUNE(((n$0 < 20) == 0), false); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n " shape="invhouse"]
|
|
|
|
|
|
|
|
|
|
|
|
7 -> 3 ;
|
|
|
|
6 [label="6: Prune (true branch) \n PRUNE(((n$0 < 20) != 0), true); [line 15]\n REMOVE_TEMPS(n$0); [line 15]\n APPLY_ABSTRACTION; [line 15]\n " shape="invhouse"]
|
|
|
|
|
|
|
|
|
|
|
|
6 -> 4 ;
|
|
|
|
5 [label="5: BinaryOperatorStmt: LT \n n$0=*&b:int [line 15]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
5 -> 6 ;
|
|
|
|
5 -> 7 ;
|
|
|
|
4 [label="4: + \n " ]
|
|
|
|
|
|
|
|
|
|
|
|
4 -> 8 ;
|
|
|
|
3 [label="3: Return Stmt \n NULLIFY(&b,false); [line 17]\n *&return:int =0 [line 17]\n APPLY_ABSTRACTION; [line 17]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
3 -> 2 ;
|
|
|
|
2 [label="2: Exit main \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
1 [label="1: Start main\nFormals: \nLocals: a:int b:int \n DECLARE_LOCALS(&return,&a,&b); [line 10]\n NULLIFY(&a,false); [line 10]\n NULLIFY(&b,false); [line 10]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
1 -> 10 ;
|
|
|
|
}
|