|
|
|
/* @generated */
|
|
|
|
digraph iCFG {
|
|
|
|
"call_virtual_destructor4" [label="4: DeclStmt \n n$1=_fun___new(sizeof(class Triangle ):unsigned long ) [line 71]\n _fun_Triangle_Triangle(n$1:class Triangle *) [line 71]\n *&trgl:class Triangle *=n$1 [line 71]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"call_virtual_destructor4" -> "call_virtual_destructor3" ;
|
|
|
|
"call_virtual_destructor3" [label="3: Call delete \n n$0=*&trgl:class Polygon * [line 72]\n _fun___delete(n$0:class Polygon *) [line 72]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"call_virtual_destructor3" -> "call_virtual_destructor2" ;
|
|
|
|
"call_virtual_destructor2" [label="2: Exit call_virtual_destructor \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"call_virtual_destructor1" [label="1: Start call_virtual_destructor\nFormals: \nLocals: trgl:class Polygon * \n DECLARE_LOCALS(&return,&trgl); [line 70]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"call_virtual_destructor1" -> "call_virtual_destructor4" ;
|
|
|
|
"Polygon_area3" [label="3: Return Stmt \n *&return:int =0 [line 20]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_area3" -> "Polygon_area2" ;
|
|
|
|
"Polygon_area2" [label="2: Exit Polygon_area \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_area1" [label="1: Start Polygon_area\nFormals: this:class Polygon *\nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_area1" -> "Polygon_area3" ;
|
|
|
|
"Rectangle_Rectangle3" [label="3: Constructor Init \n n$0=*&this:class Rectangle * [line 23]\n _fun_Polygon_Polygon(n$0:class Rectangle *) [line 23]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Rectangle_Rectangle3" -> "Rectangle_Rectangle2" ;
|
|
|
|
"Rectangle_Rectangle2" [label="2: Exit Rectangle_Rectangle \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Rectangle_Rectangle1" [label="1: Start Rectangle_Rectangle\nFormals: this:class Rectangle *\nLocals: \n DECLARE_LOCALS(&return); [line 23]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Rectangle_Rectangle1" -> "Rectangle_Rectangle3" ;
|
|
|
|
"Polygon_Polygon2" [label="2: Exit Polygon_Polygon \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_Polygon1" [label="1: Start Polygon_Polygon\nFormals: this:class Polygon *\nLocals: \n DECLARE_LOCALS(&return); [line 10]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_Polygon1" -> "Polygon_Polygon2" ;
|
|
|
|
"rect_area6" [label="6: DeclStmt \n _fun_Rectangle_Rectangle(&rect:class Rectangle *) [line 39]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"rect_area6" -> "rect_area5" ;
|
|
|
|
"rect_area5" [label="5: DeclStmt \n *&ppoly1:class Rectangle *=&rect [line 40]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"rect_area5" -> "rect_area4" ;
|
|
|
|
"rect_area4" [label="4: Call _fun_Polygon_set_values \n n$3=*&ppoly1:class Polygon * [line 41]\n _=*n$3:class Polygon [line 41]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 41]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"rect_area4" -> "rect_area3" ;
|
|
|
|
"rect_area3" [label="3: Return Stmt \n n$0=*&ppoly1:class Polygon * [line 42]\n _=*n$0:class Polygon [line 42]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 42]\n *&return:int =(1 / (n$2 - 20)) [line 42]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"rect_area3" -> "rect_area2" ;
|
|
|
|
"rect_area2" [label="2: Exit rect_area \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"rect_area1" [label="1: Start rect_area\nFormals: \nLocals: ppoly1:class Polygon * rect:class Rectangle \n DECLARE_LOCALS(&return,&ppoly1,&rect); [line 38]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"rect_area1" -> "rect_area6" ;
|
|
|
|
"tri_area7" [label="7: DeclStmt \n _fun_Triangle_Triangle(&trgl:class Triangle *) [line 46]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_area7" -> "tri_area6" ;
|
|
|
|
"tri_area6" [label="6: DeclStmt \n _fun_Polygon_Polygon(&poly:class Polygon *) [line 47]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_area6" -> "tri_area5" ;
|
|
|
|
"tri_area5" [label="5: DeclStmt \n *&ppoly2:class Triangle *=&trgl [line 48]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_area5" -> "tri_area4" ;
|
|
|
|
"tri_area4" [label="4: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 49]\n _=*n$3:class Polygon [line 49]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 49]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_area4" -> "tri_area3" ;
|
|
|
|
"tri_area3" [label="3: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 50]\n _=*n$0:class Polygon [line 50]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 50]\n *&return:int =(1 / (n$2 - 10)) [line 50]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_area3" -> "tri_area2" ;
|
|
|
|
"tri_area2" [label="2: Exit tri_area \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_area1" [label="1: Start tri_area\nFormals: \nLocals: ppoly2:class Polygon * poly:class Polygon trgl:class Triangle \n DECLARE_LOCALS(&return,&ppoly2,&poly,&trgl); [line 45]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_area1" -> "tri_area7" ;
|
|
|
|
"Polygon_set_values4" [label="4: BinaryOperatorStmt: Assign \n n$2=*&this:class Polygon * [line 17]\n n$3=*&a:int [line 17]\n *n$2.width:int =n$3 [line 17]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_set_values4" -> "Polygon_set_values3" ;
|
|
|
|
"Polygon_set_values3" [label="3: BinaryOperatorStmt: Assign \n n$0=*&this:class Polygon * [line 18]\n n$1=*&b:int [line 18]\n *n$0.height:int =n$1 [line 18]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_set_values3" -> "Polygon_set_values2" ;
|
|
|
|
"Polygon_set_values2" [label="2: Exit Polygon_set_values \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_set_values1" [label="1: Start Polygon_set_values\nFormals: this:class Polygon * a:int b:int \nLocals: \n DECLARE_LOCALS(&return); [line 16]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Polygon_set_values1" -> "Polygon_set_values4" ;
|
|
|
|
"Rectangle_area3" [label="3: Return Stmt \n n$0=*&this:class Rectangle * [line 26]\n n$1=*n$0.width:int [line 26]\n n$2=*&this:class Rectangle * [line 26]\n n$3=*n$2.height:int [line 26]\n *&return:int =(n$1 * n$3) [line 26]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Rectangle_area3" -> "Rectangle_area2" ;
|
|
|
|
"Rectangle_area2" [label="2: Exit Rectangle_area \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Rectangle_area1" [label="1: Start Rectangle_area\nFormals: this:class Rectangle *\nLocals: \n DECLARE_LOCALS(&return); [line 26]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Rectangle_area1" -> "Rectangle_area3" ;
|
|
|
|
"Triangle_Triangle3" [label="3: Constructor Init \n n$0=*&this:class Triangle * [line 29]\n _fun_Polygon_Polygon(n$0:class Triangle *) [line 29]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_Triangle3" -> "Triangle_Triangle2" ;
|
|
|
|
"Triangle_Triangle2" [label="2: Exit Triangle_Triangle \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_Triangle1" [label="1: Start Triangle_Triangle\nFormals: this:class Triangle *\nLocals: \n DECLARE_LOCALS(&return); [line 29]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_Triangle1" -> "Triangle_Triangle3" ;
|
|
|
|
"poly_area5" [label="5: DeclStmt \n _fun_Polygon_Polygon(&poly:class Polygon *) [line 54]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"poly_area5" -> "poly_area4" ;
|
|
|
|
"poly_area4" [label="4: DeclStmt \n *&ppoly3:class Polygon *=&poly [line 55]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"poly_area4" -> "poly_area3" ;
|
|
|
|
"poly_area3" [label="3: Return Stmt \n n$0=*&ppoly3:class Polygon * [line 56]\n _=*n$0:class Polygon [line 56]\n n$2=_fun_Polygon_area(n$0:class Polygon *) virtual [line 56]\n *&return:int =(1 / n$2) [line 56]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"poly_area3" -> "poly_area2" ;
|
|
|
|
"poly_area2" [label="2: Exit poly_area \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"poly_area1" [label="1: Start poly_area\nFormals: \nLocals: ppoly3:class Polygon * poly:class Polygon \n DECLARE_LOCALS(&return,&ppoly3,&poly); [line 53]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"poly_area1" -> "poly_area5" ;
|
|
|
|
"Triangle_area4" [label="4: DeclStmt \n n$1=*&this:class Triangle * [line 33]\n n$2=*n$1.width:int [line 33]\n n$3=*&this:class Triangle * [line 33]\n n$4=*n$3.height:int [line 33]\n *&x:int =(n$2 * n$4) [line 33]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_area4" -> "Triangle_area3" ;
|
|
|
|
"Triangle_area3" [label="3: Return Stmt \n n$0=*&x:int [line 34]\n *&return:int =(n$0 - 10) [line 34]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_area3" -> "Triangle_area2" ;
|
|
|
|
"Triangle_area2" [label="2: Exit Triangle_area \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_area1" [label="1: Start Triangle_area\nFormals: this:class Triangle *\nLocals: x:int \n DECLARE_LOCALS(&return,&x); [line 32]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_area1" -> "Triangle_area4" ;
|
|
|
|
"Triangle_~Triangle2" [label="2: Exit Triangle_~Triangle \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_~Triangle1" [label="1: Start Triangle_~Triangle\nFormals: this:class Triangle *\nLocals: \n DECLARE_LOCALS(&return); [line 31]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"Triangle_~Triangle1" -> "Triangle_~Triangle2" ;
|
|
|
|
"tri_not_virtual_area7" [label="7: DeclStmt \n _fun_Triangle_Triangle(&trgl:class Triangle *) [line 60]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_not_virtual_area7" -> "tri_not_virtual_area6" ;
|
|
|
|
"tri_not_virtual_area6" [label="6: DeclStmt \n _fun_Polygon_Polygon(&poly:class Polygon *) [line 61]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_not_virtual_area6" -> "tri_not_virtual_area5" ;
|
|
|
|
"tri_not_virtual_area5" [label="5: DeclStmt \n *&ppoly2:class Triangle *=&trgl [line 62]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_not_virtual_area5" -> "tri_not_virtual_area4" ;
|
|
|
|
"tri_not_virtual_area4" [label="4: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 63]\n _=*n$3:class Polygon [line 63]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 63]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_not_virtual_area4" -> "tri_not_virtual_area3" ;
|
|
|
|
"tri_not_virtual_area3" [label="3: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 64]\n _=*n$0:class Polygon [line 64]\n n$2=_fun_Polygon_area(n$0:class Polygon *) [line 64]\n *&return:int =(1 / n$2) [line 64]\n " shape="box"]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_not_virtual_area3" -> "tri_not_virtual_area2" ;
|
|
|
|
"tri_not_virtual_area2" [label="2: Exit tri_not_virtual_area \n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_not_virtual_area1" [label="1: Start tri_not_virtual_area\nFormals: \nLocals: ppoly2:class Polygon * poly:class Polygon trgl:class Triangle \n DECLARE_LOCALS(&return,&ppoly2,&poly,&trgl); [line 59]\n " color=yellow style=filled]
|
|
|
|
|
|
|
|
|
|
|
|
"tri_not_virtual_area1" -> "tri_not_virtual_area7" ;
|
|
|
|
}
|