add concept of a dummy identifier

Reviewed By: jberdine

Differential Revision: D3470952

fbshipit-source-id: d40ef14
master
Sam Blackshear 9 years ago committed by Facebook Github Bot
parent 2439dcf91f
commit 006bd06adb

@ -31,6 +31,14 @@ let knormal = 0;
let kfootprint = 1;
/** special kind of "null ident" (basically, a more compact way of implementing an ident option).
useful for situations when an instruction requires an id, but no one should read the result. */
let knone = 2;
/* timestamp for a path identifier */
let path_ident_stamp = (-3);
type t = {kind: int, name: name, stamp: int};
type _ident = t;
@ -147,6 +155,7 @@ let name_to_string (name: name) => name;
/** Convert a fieldname to a string. */
let fieldname_to_string fn => Mangled.to_string fn.fname;
/** Convert a fieldname to a string, including the mangled part. */
let fieldname_to_complete_string fn => Mangled.to_string_full fn.fname;
@ -283,7 +292,7 @@ let name_return = Mangled.from_string "return";
/** Return the standard name for the given kind */
let standard_name kind =>
if (kind === knormal) {
if (kind === knormal || kind === knone) {
name_normal
} else if (kind === kfootprint) {
name_footprint
@ -307,6 +316,12 @@ let create kind stamp => create_with_stamp kind (standard_name kind) stamp;
let create_normal name stamp => create_with_stamp knormal name stamp;
/** Create a fresh identifier with default name for the given kind. */
let create_fresh kind => NameGenerator.create_fresh_ident kind (standard_name kind);
let create_none () => create_fresh knone;
/** Generate a primed identifier with the given name and stamp */
let create_primed name stamp => create_with_stamp kprimed name stamp;
@ -319,22 +334,21 @@ let create_footprint name stamp => create_with_stamp kfootprint name stamp;
/** Get a name of an identifier */
let get_name id => id.name;
let get_kind id => id.kind;
let is_primed (id: t) => id.kind === kprimed;
let is_normal (id: t) => id.kind === knormal;
let is_normal (id: t) => id.kind === knormal || id.kind === knone;
let is_footprint (id: t) => id.kind === kfootprint;
/* timestamp for a path identifier */
let path_ident_stamp = (-3);
let is_none (id: t) => id.kind == knone;
let is_path (id: t) => id.kind === knormal && id.stamp == path_ident_stamp;
let make_unprimed id =>
if (id.kind != kprimed) {
assert false
} else if (id.kind === knone) {
{...id, kind: knone}
} else {
{...id, kind: knormal}
};
@ -347,10 +361,6 @@ let update_name_generator ids => {
};
/** Create a fresh identifier with default name for the given kind. */
let create_fresh kind => NameGenerator.create_fresh_ident kind (standard_name kind);
/** Generate a normal identifier whose name encodes a path given as a string. */
let create_path pathstring =>
create_normal (string_to_name ("%path%" ^ pathstring)) path_ident_stamp;
@ -365,6 +375,10 @@ let to_string id => {
"@"
} else if (id.kind === knormal) {
""
} else if (
id.kind === knone
) {
"NONE"
} else {
"_"
};
@ -412,9 +426,3 @@ let pp_list pe => pp_comma_seq (pp pe);
/** pretty printer for lists of names */
let pp_name_list = pp_comma_seq pp_name;
/*
let make_ident_primed id =
if id.kind == kprimed then assert false
else { id with kind = kprimed }
*/

@ -105,6 +105,7 @@ let name_to_string: name => string;
/** Convert a field name to a string. */
let fieldname_to_string: fieldname => string;
/** Convert a fieldname to a string, including the mangled part. */
let fieldname_to_complete_string: fieldname => string;
@ -145,10 +146,6 @@ let fieldname_is_hidden: fieldname => bool;
let get_name: t => name;
/** Kind of the identifier. */
let get_kind: t => kind;
/** Create an identifier with default name for the given kind */
let create: kind => int => t;
@ -157,6 +154,10 @@ let create: kind => int => t;
let create_normal: name => int => t;
/** Create a "null" identifier for situations where the IR requires an id that will never be read */
let create_none: unit => t;
/** Generate a primed identifier with the given name and stamp. */
let create_primed: name => int => t;
@ -193,6 +194,10 @@ let is_footprint: t => bool;
let is_path: t => bool;
/** Check whether an identifier is the special "none" identifier */
let is_none: t => bool;
/** Convert a primed ident into a nonprimed one, keeping the stamp. */
let make_unprimed: t => t;

@ -575,7 +575,8 @@ struct
(* calling a method with null *)
| [(exp, Typ.Tptr (typ, _) )] when decl_kind <> `CXXConstructor ->
let typ = CTypes.expand_structured_type context.tenv typ in
let extra_instrs, _ = CTrans_utils.dereference_var_sil (exp, typ) sil_loc in
let no_id = Ident.create_none () in
let extra_instrs = [Sil.Letderef (no_id, exp, typ, sil_loc)] in
pre_trans_result.exps, extra_instrs
| [(_, Typ.Tptr _ )] -> pre_trans_result.exps, []
| [(sil, typ)] -> [(sil, Typ.Tptr (typ, Typ.Pk_reference))], []

@ -404,8 +404,8 @@ let builtin_get_array_length =
Sil.Const (Sil.Cfun ModelBuiltins.__get_array_length)
let create_sil_deref exp typ loc =
let fresh_id = Ident.create_fresh Ident.knormal in
Sil.Letderef (fresh_id, exp, typ, loc)
let no_id = Ident.create_none () in
Sil.Letderef (no_id, exp, typ, loc)
(** translate an expression used as an r-value *)
let rec expression context pc expr =

@ -11,7 +11,7 @@ digraph iCFG {
20 -> 22 ;
19 [label="19: Call _fun_XForward_call \n n$0=*&x:class XForward * [line 35]\n n$1=*n$0:class XForward [line 35]\n n$2=_fun_XForward_call(n$0:class XForward *) [line 35]\n " shape="box"]
19 [label="19: Call _fun_XForward_call \n n$0=*&x:class XForward * [line 35]\n NONEn$1=*n$0:class XForward [line 35]\n n$2=_fun_XForward_call(n$0:class XForward *) [line 35]\n " shape="box"]
19 -> 18 ;
@ -33,7 +33,7 @@ digraph iCFG {
14 -> 16 ;
13 [label="13: Call _fun_X_call \n n$0=_fun_getX() [line 22]\n n$1=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n " shape="box"]
13 [label="13: Call _fun_X_call \n n$0=_fun_getX() [line 22]\n NONEn$1=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n " shape="box"]
13 -> 12 ;
@ -59,7 +59,7 @@ digraph iCFG {
7 -> 6 ;
6 [label="6: Return Stmt \n n$0=*&x:class X * [line 17]\n n$1=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X *) [line 17]\n *&return:int =n$2 [line 17]\n " shape="box"]
6 [label="6: Return Stmt \n n$0=*&x:class X * [line 17]\n NONEn$1=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X *) [line 17]\n *&return:int =n$2 [line 17]\n " shape="box"]
6 -> 5 ;

@ -4,7 +4,7 @@ digraph iCFG {
26 -> 25 ;
25 [label="25: Call _fun_X_div \n n$0=*&x:class X [line 40]\n n$1=_fun_X_div(&x:class X &) [line 40]\n " shape="box"]
25 [label="25: Call _fun_X_div \n NONEn$0=*&x:class X [line 40]\n n$1=_fun_X_div(&x:class X &) [line 40]\n " shape="box"]
25 -> 24 ;
@ -19,7 +19,7 @@ digraph iCFG {
22 -> 21 ;
21 [label="21: Call _fun_X_div \n n$0=*&x:class X [line 35]\n n$1=_fun_X_div(&x:class X &) [line 35]\n " shape="box"]
21 [label="21: Call _fun_X_div \n NONEn$0=*&x:class X [line 35]\n n$1=_fun_X_div(&x:class X &) [line 35]\n " shape="box"]
21 -> 20 ;
@ -34,7 +34,7 @@ digraph iCFG {
18 -> 17 ;
17 [label="17: Call _fun_X_div \n n$0=*&x:class X [line 30]\n n$1=_fun_X_div(&x:class X &) [line 30]\n " shape="box"]
17 [label="17: Call _fun_X_div \n NONEn$0=*&x:class X [line 30]\n n$1=_fun_X_div(&x:class X &) [line 30]\n " shape="box"]
17 -> 16 ;
@ -49,7 +49,7 @@ digraph iCFG {
14 -> 13 ;
13 [label="13: Call _fun_X_init \n n$2=*&this:class X * [line 24]\n n$3=*n$2:class X [line 24]\n _fun_X_init(n$2:class X *) [line 24]\n " shape="box"]
13 [label="13: Call _fun_X_init \n n$2=*&this:class X * [line 24]\n NONEn$3=*n$2:class X [line 24]\n _fun_X_init(n$2:class X *) [line 24]\n " shape="box"]
13 -> 12 ;
@ -75,7 +75,7 @@ digraph iCFG {
7 -> 9 ;
6 [label="6: Call _fun_X_init \n n$0=*&this:class X * [line 15]\n n$1=*n$0:class X [line 15]\n _fun_X_init(n$0:class X *) [line 15]\n " shape="box"]
6 [label="6: Call _fun_X_init \n n$0=*&this:class X * [line 15]\n NONEn$1=*n$0:class X [line 15]\n _fun_X_init(n$0:class X *) [line 15]\n " shape="box"]
6 -> 5 ;

@ -19,7 +19,7 @@ digraph iCFG {
7 -> 5 ;
6 [label="6: BinaryOperatorStmt: NE \n n$4=*&i:int * [line 15]\n n$5=*&list:class std::initializer_list<int> & [line 15]\n n$6=*n$5:class std::initializer_list<int> [line 15]\n n$7=_fun_std::initializer_list<int>_end(n$5:class std::initializer_list<int> &) [line 15]\n " shape="box"]
6 [label="6: BinaryOperatorStmt: NE \n n$4=*&i:int * [line 15]\n n$5=*&list:class std::initializer_list<int> & [line 15]\n NONEn$6=*n$5:class std::initializer_list<int> [line 15]\n n$7=_fun_std::initializer_list<int>_end(n$5:class std::initializer_list<int> &) [line 15]\n " shape="box"]
6 -> 7 ;
@ -28,7 +28,7 @@ digraph iCFG {
5 -> 3 ;
4 [label="4: DeclStmt \n n$0=*&list:class std::initializer_list<int> & [line 15]\n n$1=*n$0:class std::initializer_list<int> [line 15]\n n$2=_fun_std::initializer_list<int>_begin(n$0:class std::initializer_list<int> &) [line 15]\n *&i:int *=n$2 [line 15]\n " shape="box"]
4 [label="4: DeclStmt \n n$0=*&list:class std::initializer_list<int> & [line 15]\n NONEn$1=*n$0:class std::initializer_list<int> [line 15]\n n$2=_fun_std::initializer_list<int>_begin(n$0:class std::initializer_list<int> &) [line 15]\n *&i:int *=n$2 [line 15]\n " shape="box"]
4 -> 3 ;

@ -81,7 +81,7 @@ digraph iCFG {
22 -> 21 ;
21 [label="21: Return Stmt \n n$0=*&x:class X [line 28]\n n$1=_fun_X_div(&x:class X &) [line 28]\n *&return:int =n$1 [line 28]\n " shape="box"]
21 [label="21: Return Stmt \n NONEn$0=*&x:class X [line 28]\n n$1=_fun_X_div(&x:class X &) [line 28]\n *&return:int =n$1 [line 28]\n " shape="box"]
21 -> 20 ;

@ -1,6 +1,6 @@
/* @generated */
digraph iCFG {
3 [label="3: Call _fun_Person_~Person \n n$0=*&p:class Person * [line 15]\n n$1=*n$0:class Person [line 15]\n _fun_Person_~Person(n$0:class Person *) [line 15]\n " shape="box"]
3 [label="3: Call _fun_Person_~Person \n n$0=*&p:class Person * [line 15]\n NONEn$1=*n$0:class Person [line 15]\n _fun_Person_~Person(n$0:class Person *) [line 15]\n " shape="box"]
3 -> 2 ;

@ -26,7 +26,7 @@ digraph iCFG {
30 -> 29 ;
29 [label="29: Call _fun_B<A>_div0 \n n$0=*&b:class B<A> [line 20]\n n$1=_fun_B<A>_div0(&b:class B<A> &) [line 20]\n " shape="box"]
29 [label="29: Call _fun_B<A>_div0 \n NONEn$0=*&b:class B<A> [line 20]\n n$1=_fun_B<A>_div0(&b:class B<A> &) [line 20]\n " shape="box"]
29 -> 28 ;
@ -41,7 +41,7 @@ digraph iCFG {
26 -> 25 ;
25 [label="25: Call _fun_B<int>_div0 \n n$0=*&b:class B<int> [line 15]\n n$1=_fun_B<int>_div0(&b:class B<int> &) [line 15]\n " shape="box"]
25 [label="25: Call _fun_B<int>_div0 \n NONEn$0=*&b:class B<int> [line 15]\n n$1=_fun_B<int>_div0(&b:class B<int> &) [line 15]\n " shape="box"]
25 -> 24 ;

@ -1,6 +1,6 @@
/* @generated */
digraph iCFG {
9 [label="9: Return Stmt \n n$0=*&a:class A * [line 17]\n n$1=*n$0:class A [line 17]\n n$2=_fun_A_meth_with_self(n$0:class A *,1:int ,2:int ) [line 17]\n n$3=_fun_fun_with_self(10:int ) [line 17]\n *&return:int =(n$2 + n$3) [line 17]\n " shape="box"]
9 [label="9: Return Stmt \n n$0=*&a:class A * [line 17]\n NONEn$1=*n$0:class A [line 17]\n n$2=_fun_A_meth_with_self(n$0:class A *,1:int ,2:int ) [line 17]\n n$3=_fun_fun_with_self(10:int ) [line 17]\n *&return:int =(n$2 + n$3) [line 17]\n " shape="box"]
9 -> 8 ;

@ -33,11 +33,11 @@ digraph iCFG {
36 -> 33 ;
35 [label="35: DeclStmt \n n$5=*&__range:class vec & [line 37]\n n$6=*n$5:class vec [line 37]\n _fun_vec_begin(n$5:class vec &,&SIL_materialize_temp__n$4:class iterator *) [line 37]\n _fun_iterator_iterator(&__begin:class iterator *,&SIL_materialize_temp__n$4:class iterator &) [line 37]\n " shape="box"]
35 [label="35: DeclStmt \n n$5=*&__range:class vec & [line 37]\n NONEn$6=*n$5:class vec [line 37]\n _fun_vec_begin(n$5:class vec &,&SIL_materialize_temp__n$4:class iterator *) [line 37]\n _fun_iterator_iterator(&__begin:class iterator *,&SIL_materialize_temp__n$4:class iterator &) [line 37]\n " shape="box"]
35 -> 34 ;
34 [label="34: DeclStmt \n n$1=*&__range:class vec & [line 37]\n n$2=*n$1:class vec [line 37]\n _fun_vec_end(n$1:class vec &,&SIL_materialize_temp__n$0:class iterator *) [line 37]\n _fun_iterator_iterator(&__end:class iterator *,&SIL_materialize_temp__n$0:class iterator &) [line 37]\n " shape="box"]
34 [label="34: DeclStmt \n n$1=*&__range:class vec & [line 37]\n NONEn$2=*n$1:class vec [line 37]\n _fun_vec_end(n$1:class vec &,&SIL_materialize_temp__n$0:class iterator *) [line 37]\n _fun_iterator_iterator(&__end:class iterator *,&SIL_materialize_temp__n$0:class iterator &) [line 37]\n " shape="box"]
34 -> 33 ;

@ -4,7 +4,7 @@ digraph iCFG {
61 -> 56 ;
60 [label="60: DeclStmt \n n$5=*&x:class X [line 64]\n n$6=_fun_X_operator int(&x:class X &) [line 64]\n *&v:int =n$6 [line 64]\n " shape="box"]
60 [label="60: DeclStmt \n NONEn$5=*&x:class X [line 64]\n n$6=_fun_X_operator int(&x:class X &) [line 64]\n *&v:int =n$6 [line 64]\n " shape="box"]
60 -> 59 ;
@ -20,7 +20,7 @@ digraph iCFG {
57 -> 60 ;
56 [label="56: Call _fun_X_operator bool \n n$2=*&x:class X [line 63]\n n$3=_fun_X_operator bool(&x:class X &) [line 63]\n " shape="box"]
56 [label="56: Call _fun_X_operator bool \n NONEn$2=*&x:class X [line 63]\n n$3=_fun_X_operator bool(&x:class X &) [line 63]\n " shape="box"]
56 -> 57 ;
@ -29,7 +29,7 @@ digraph iCFG {
55 -> 54 ;
54 [label="54: Return Stmt \n n$0=*&x:class X [line 67]\n n$1=_fun_X_operator int(&x:class X &) [line 67]\n *&return:int =n$1 [line 67]\n " shape="box"]
54 [label="54: Return Stmt \n NONEn$0=*&x:class X [line 67]\n n$1=_fun_X_operator int(&x:class X &) [line 67]\n *&return:int =n$1 [line 67]\n " shape="box"]
54 -> 53 ;
@ -44,7 +44,7 @@ digraph iCFG {
51 -> 46 ;
50 [label="50: DeclStmt \n n$5=*&x:class X [line 55]\n n$6=_fun_X_operator int(&x:class X &) [line 55]\n *&v:int =n$6 [line 55]\n " shape="box"]
50 [label="50: DeclStmt \n NONEn$5=*&x:class X [line 55]\n n$6=_fun_X_operator int(&x:class X &) [line 55]\n *&v:int =n$6 [line 55]\n " shape="box"]
50 -> 49 ;
@ -60,7 +60,7 @@ digraph iCFG {
47 -> 50 ;
46 [label="46: Call _fun_X_operator bool \n n$2=*&x:class X [line 54]\n n$3=_fun_X_operator bool(&x:class X &) [line 54]\n " shape="box"]
46 [label="46: Call _fun_X_operator bool \n NONEn$2=*&x:class X [line 54]\n n$3=_fun_X_operator bool(&x:class X &) [line 54]\n " shape="box"]
46 -> 47 ;
@ -69,7 +69,7 @@ digraph iCFG {
45 -> 44 ;
44 [label="44: Return Stmt \n n$0=*&x:class X [line 58]\n n$1=_fun_X_operator int(&x:class X &) [line 58]\n *&return:int =n$1 [line 58]\n " shape="box"]
44 [label="44: Return Stmt \n NONEn$0=*&x:class X [line 58]\n n$1=_fun_X_operator int(&x:class X &) [line 58]\n *&return:int =n$1 [line 58]\n " shape="box"]
44 -> 43 ;
@ -92,7 +92,7 @@ digraph iCFG {
39 -> 34 ;
38 [label="38: DeclStmt \n n$13=*&y:class Y [line 46]\n _fun_Y_operator X(&y:class Y &,&SIL_materialize_temp__n$12:class X *) [line 46]\n _fun_X_X(&__temp_construct_n$11:class X *,&SIL_materialize_temp__n$12:class X &) [line 46]\n n$15=_fun_X_operator int(&__temp_construct_n$11:class X &) [line 46]\n *&v:int =n$15 [line 46]\n " shape="box"]
38 [label="38: DeclStmt \n NONEn$13=*&y:class Y [line 46]\n _fun_Y_operator X(&y:class Y &,&SIL_materialize_temp__n$12:class X *) [line 46]\n _fun_X_X(&__temp_construct_n$11:class X *,&SIL_materialize_temp__n$12:class X &) [line 46]\n n$15=_fun_X_operator int(&__temp_construct_n$11:class X &) [line 46]\n *&v:int =n$15 [line 46]\n " shape="box"]
38 -> 37 ;
@ -108,7 +108,7 @@ digraph iCFG {
35 -> 38 ;
34 [label="34: Call _fun_X_operator bool \n n$7=*&y:class Y [line 45]\n _fun_Y_operator X(&y:class Y &,&SIL_materialize_temp__n$6:class X *) [line 45]\n _fun_X_X(&__temp_construct_n$5:class X *,&SIL_materialize_temp__n$6:class X &) [line 45]\n n$9=_fun_X_operator bool(&__temp_construct_n$5:class X &) [line 45]\n " shape="box"]
34 [label="34: Call _fun_X_operator bool \n NONEn$7=*&y:class Y [line 45]\n _fun_Y_operator X(&y:class Y &,&SIL_materialize_temp__n$6:class X *) [line 45]\n _fun_X_X(&__temp_construct_n$5:class X *,&SIL_materialize_temp__n$6:class X &) [line 45]\n n$9=_fun_X_operator bool(&__temp_construct_n$5:class X &) [line 45]\n " shape="box"]
34 -> 35 ;
@ -117,7 +117,7 @@ digraph iCFG {
33 -> 32 ;
32 [label="32: Return Stmt \n n$2=*&y:class Y [line 49]\n _fun_Y_operator X(&y:class Y &,&SIL_materialize_temp__n$1:class X *) [line 49]\n _fun_X_X(&__temp_construct_n$0:class X *,&SIL_materialize_temp__n$1:class X &) [line 49]\n n$4=_fun_X_operator int(&__temp_construct_n$0:class X &) [line 49]\n *&return:int =n$4 [line 49]\n " shape="box"]
32 [label="32: Return Stmt \n NONEn$2=*&y:class Y [line 49]\n _fun_Y_operator X(&y:class Y &,&SIL_materialize_temp__n$1:class X *) [line 49]\n _fun_X_X(&__temp_construct_n$0:class X *,&SIL_materialize_temp__n$1:class X &) [line 49]\n n$4=_fun_X_operator int(&__temp_construct_n$0:class X &) [line 49]\n *&return:int =n$4 [line 49]\n " shape="box"]
32 -> 31 ;
@ -132,7 +132,7 @@ digraph iCFG {
29 -> 24 ;
28 [label="28: DeclStmt \n n$5=*&x:class X [line 35]\n n$6=_fun_X_operator int(&x:class X &) [line 35]\n *&v:int =n$6 [line 35]\n " shape="box"]
28 [label="28: DeclStmt \n NONEn$5=*&x:class X [line 35]\n n$6=_fun_X_operator int(&x:class X &) [line 35]\n *&v:int =n$6 [line 35]\n " shape="box"]
28 -> 27 ;
@ -148,7 +148,7 @@ digraph iCFG {
25 -> 28 ;
24 [label="24: Call _fun_X_operator bool \n n$2=*&x:class X [line 34]\n n$3=_fun_X_operator bool(&x:class X &) [line 34]\n " shape="box"]
24 [label="24: Call _fun_X_operator bool \n NONEn$2=*&x:class X [line 34]\n n$3=_fun_X_operator bool(&x:class X &) [line 34]\n " shape="box"]
24 -> 25 ;
@ -157,7 +157,7 @@ digraph iCFG {
23 -> 22 ;
22 [label="22: Return Stmt \n n$0=*&x:class X [line 38]\n n$1=_fun_X_operator int(&x:class X &) [line 38]\n *&return:int =n$1 [line 38]\n " shape="box"]
22 [label="22: Return Stmt \n NONEn$0=*&x:class X [line 38]\n n$1=_fun_X_operator int(&x:class X &) [line 38]\n *&return:int =n$1 [line 38]\n " shape="box"]
22 -> 21 ;

@ -1,14 +1,14 @@
/* @generated */
digraph iCFG {
8 [label="8: Call _fun_A_fun_default \n n$6=*&a_ptr:class A * [line 18]\n n$7=*n$6:class A [line 18]\n n$8=_fun_A_fun_default(n$6:class A *,1:int ,2:int ,3:int ) [line 18]\n " shape="box"]
8 [label="8: Call _fun_A_fun_default \n n$6=*&a_ptr:class A * [line 18]\n NONEn$7=*n$6:class A [line 18]\n n$8=_fun_A_fun_default(n$6:class A *,1:int ,2:int ,3:int ) [line 18]\n " shape="box"]
8 -> 7 ;
7 [label="7: Call _fun_A_fun_default \n n$3=*&a_ptr:class A * [line 19]\n n$4=*n$3:class A [line 19]\n n$5=_fun_A_fun_default(n$3:class A *,1:int ,2:int ,20:int ) [line 19]\n " shape="box"]
7 [label="7: Call _fun_A_fun_default \n n$3=*&a_ptr:class A * [line 19]\n NONEn$4=*n$3:class A [line 19]\n n$5=_fun_A_fun_default(n$3:class A *,1:int ,2:int ,20:int ) [line 19]\n " shape="box"]
7 -> 6 ;
6 [label="6: Call _fun_A_fun_default \n n$0=*&a_ptr:class A * [line 20]\n n$1=*n$0:class A [line 20]\n n$2=_fun_A_fun_default(n$0:class A *,1:int ,10:int ,20:int ) [line 20]\n " shape="box"]
6 [label="6: Call _fun_A_fun_default \n n$0=*&a_ptr:class A * [line 20]\n NONEn$1=*n$0:class A [line 20]\n n$2=_fun_A_fun_default(n$0:class A *,1:int ,10:int ,20:int ) [line 20]\n " shape="box"]
6 -> 5 ;

@ -1,6 +1,6 @@
/* @generated */
digraph iCFG {
10 [label="10: Call _fun_A_method \n n$0=*&a_ptr:class A * [line 25]\n n$1=*n$0:class A [line 25]\n n$2=_fun_A_method(n$0:class A *) [line 25]\n " shape="box"]
10 [label="10: Call _fun_A_method \n n$0=*&a_ptr:class A * [line 25]\n NONEn$1=*n$0:class A [line 25]\n n$2=_fun_A_method(n$0:class A *) [line 25]\n " shape="box"]
10 -> 9 ;
@ -11,7 +11,7 @@ digraph iCFG {
8 -> 10 ;
7 [label="7: Call _fun_A_init \n n$2=*&this:class A * [line 19]\n n$3=*n$2:class A [line 19]\n _fun_A_init(n$2:class A *,10:int ) [line 19]\n " shape="box"]
7 [label="7: Call _fun_A_init \n n$2=*&this:class A * [line 19]\n NONEn$3=*n$2:class A [line 19]\n _fun_A_init(n$2:class A *,10:int ) [line 19]\n " shape="box"]
7 -> 6 ;

@ -1,10 +1,10 @@
/* @generated */
digraph iCFG {
11 [label="11: Call _fun_A_fun \n n$4=*&a_ptr:class A * [line 24]\n n$5=*n$4:class A [line 24]\n n$6=_fun_A_fun(n$4:class A *) [line 24]\n " shape="box"]
11 [label="11: Call _fun_A_fun \n n$4=*&a_ptr:class A * [line 24]\n NONEn$5=*n$4:class A [line 24]\n n$6=_fun_A_fun(n$4:class A *) [line 24]\n " shape="box"]
11 -> 10 ;
10 [label="10: Call _fun_A::AIn_fun \n n$0=*&a_ptr:class A * [line 25]\n n$1=*n$0.in:class A::AIn * [line 25]\n n$2=*n$1:class A::AIn [line 25]\n n$3=_fun_A::AIn_fun(n$1:class A::AIn *) [line 25]\n " shape="box"]
10 [label="10: Call _fun_A::AIn_fun \n n$0=*&a_ptr:class A * [line 25]\n n$1=*n$0.in:class A::AIn * [line 25]\n NONEn$2=*n$1:class A::AIn [line 25]\n n$3=_fun_A::AIn_fun(n$1:class A::AIn *) [line 25]\n " shape="box"]
10 -> 9 ;

@ -1,10 +1,10 @@
/* @generated */
digraph iCFG {
10 [label="10: Call _fun_A_fun \n n$3=*&a_ptr:class A * [line 22]\n n$4=*n$3:class A [line 22]\n n$5=_fun_A_fun(n$3:class A *,1:int ,2:int ) [line 22]\n " shape="box"]
10 [label="10: Call _fun_A_fun \n n$3=*&a_ptr:class A * [line 22]\n NONEn$4=*n$3:class A [line 22]\n n$5=_fun_A_fun(n$3:class A *,1:int ,2:int ) [line 22]\n " shape="box"]
10 -> 9 ;
9 [label="9: Call _fun_A_fun \n n$0=*&a_ptr:class A * [line 23]\n n$1=*n$0:class A [line 23]\n n$2=_fun_A_fun(n$0:class A *,1:int ,2:int ,3:int ) [line 23]\n " shape="box"]
9 [label="9: Call _fun_A_fun \n n$0=*&a_ptr:class A * [line 23]\n NONEn$1=*n$0:class A [line 23]\n n$2=_fun_A_fun(n$0:class A *,1:int ,2:int ,3:int ) [line 23]\n " shape="box"]
9 -> 8 ;

@ -1,6 +1,6 @@
/* @generated */
digraph iCFG {
13 [label="13: DeclStmt \n n$2=*&a:class A * [line 22]\n n$3=*n$2:class A [line 22]\n _fun_A_get(n$2:class A *,1:int ,&SIL_materialize_temp__n$1:class X *) [line 22]\n _fun_X_X(&x:class X *,&SIL_materialize_temp__n$1:class X &) [line 22]\n " shape="box"]
13 [label="13: DeclStmt \n n$2=*&a:class A * [line 22]\n NONEn$3=*n$2:class A [line 22]\n _fun_A_get(n$2:class A *,1:int ,&SIL_materialize_temp__n$1:class X *) [line 22]\n _fun_X_X(&x:class X *,&SIL_materialize_temp__n$1:class X &) [line 22]\n " shape="box"]
13 -> 12 ;

@ -27,11 +27,11 @@ digraph iCFG {
47 -> 46 ;
46 [label="46: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 63]\n n$4=*n$3:class Polygon [line 63]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 63]\n " shape="box"]
46 [label="46: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 63]\n NONEn$4=*n$3:class Polygon [line 63]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 63]\n " shape="box"]
46 -> 45 ;
45 [label="45: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 64]\n n$1=*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"]
45 [label="45: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 64]\n NONEn$1=*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"]
45 -> 44 ;
@ -50,7 +50,7 @@ digraph iCFG {
41 -> 40 ;
40 [label="40: Return Stmt \n n$0=*&ppoly3:class Polygon * [line 56]\n n$1=*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"]
40 [label="40: Return Stmt \n n$0=*&ppoly3:class Polygon * [line 56]\n NONEn$1=*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"]
40 -> 39 ;
@ -73,11 +73,11 @@ digraph iCFG {
35 -> 34 ;
34 [label="34: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 49]\n n$4=*n$3:class Polygon [line 49]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 49]\n " shape="box"]
34 [label="34: Call _fun_Polygon_set_values \n n$3=*&ppoly2:class Polygon * [line 49]\n NONEn$4=*n$3:class Polygon [line 49]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 49]\n " shape="box"]
34 -> 33 ;
33 [label="33: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 50]\n n$1=*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"]
33 [label="33: Return Stmt \n n$0=*&ppoly2:class Polygon * [line 50]\n NONEn$1=*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"]
33 -> 32 ;
@ -96,11 +96,11 @@ digraph iCFG {
29 -> 28 ;
28 [label="28: Call _fun_Polygon_set_values \n n$3=*&ppoly1:class Polygon * [line 41]\n n$4=*n$3:class Polygon [line 41]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 41]\n " shape="box"]
28 [label="28: Call _fun_Polygon_set_values \n n$3=*&ppoly1:class Polygon * [line 41]\n NONEn$4=*n$3:class Polygon [line 41]\n _fun_Polygon_set_values(n$3:class Polygon *,4:int ,5:int ) [line 41]\n " shape="box"]
28 -> 27 ;
27 [label="27: Return Stmt \n n$0=*&ppoly1:class Polygon * [line 42]\n n$1=*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"]
27 [label="27: Return Stmt \n n$0=*&ppoly1:class Polygon * [line 42]\n NONEn$1=*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"]
27 -> 26 ;

@ -8,7 +8,7 @@ digraph iCFG {
23 -> 22 ;
22 [label="22: Call _fun_bar::Rectangle_set_values \n n$4=*&rect1:class bar::Rectangle [line 49]\n _fun_bar::Rectangle_set_values(&rect1:class bar::Rectangle &,3:int ,4:int ) [line 49]\n " shape="box"]
22 [label="22: Call _fun_bar::Rectangle_set_values \n NONEn$4=*&rect1:class bar::Rectangle [line 49]\n _fun_bar::Rectangle_set_values(&rect1:class bar::Rectangle &,3:int ,4:int ) [line 49]\n " shape="box"]
22 -> 21 ;
@ -16,7 +16,7 @@ digraph iCFG {
21 -> 20 ;
20 [label="20: Call _fun_foo::Rectangle_set_values \n n$3=*&rect2:class foo::Rectangle [line 52]\n _fun_foo::Rectangle_set_values(&rect2:class foo::Rectangle &,7:int ,10:int ) [line 52]\n " shape="box"]
20 [label="20: Call _fun_foo::Rectangle_set_values \n NONEn$3=*&rect2:class foo::Rectangle [line 52]\n _fun_foo::Rectangle_set_values(&rect2:class foo::Rectangle &,7:int ,10:int ) [line 52]\n " shape="box"]
20 -> 19 ;

@ -4,7 +4,7 @@ digraph iCFG {
11 -> 10 ;
10 [label="10: DeclStmt \n n$0=*&x:class X * [line 22]\n n$1=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n *&c:int =n$2 [line 22]\n " shape="box"]
10 [label="10: DeclStmt \n n$0=*&x:class X * [line 22]\n NONEn$1=*n$0:class X [line 22]\n n$2=_fun_X_call(n$0:class X *) [line 22]\n *&c:int =n$2 [line 22]\n " shape="box"]
10 -> 9 ;
@ -19,7 +19,7 @@ digraph iCFG {
7 -> 6 ;
6 [label="6: DeclStmt \n n$0=*&x:class X & [line 17]\n n$1=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X &) [line 17]\n *&c:int =n$2 [line 17]\n " shape="box"]
6 [label="6: DeclStmt \n n$0=*&x:class X & [line 17]\n NONEn$1=*n$0:class X [line 17]\n n$2=_fun_X_call(n$0:class X &) [line 17]\n *&c:int =n$2 [line 17]\n " shape="box"]
6 -> 5 ;

@ -4,7 +4,7 @@ digraph iCFG {
19 -> 18 ;
18 [label="18: DeclStmt \n n$0=_fun_get_ptr() [line 26]\n n$1=*n$0:class X [line 26]\n n$2=_fun_X_call(n$0:class X *) [line 26]\n *&c:int =n$2 [line 26]\n " shape="box"]
18 [label="18: DeclStmt \n n$0=_fun_get_ptr() [line 26]\n NONEn$1=*n$0:class X [line 26]\n n$2=_fun_X_call(n$0:class X *) [line 26]\n *&c:int =n$2 [line 26]\n " shape="box"]
18 -> 17 ;
@ -19,7 +19,7 @@ digraph iCFG {
15 -> 14 ;
14 [label="14: DeclStmt \n n$0=_fun_get_ref() [line 21]\n n$1=*n$0:class X [line 21]\n n$2=_fun_X_call(n$0:class X &) [line 21]\n *&c:int =n$2 [line 21]\n " shape="box"]
14 [label="14: DeclStmt \n n$0=_fun_get_ref() [line 21]\n NONEn$1=*n$0:class X [line 21]\n n$2=_fun_X_call(n$0:class X &) [line 21]\n *&c:int =n$2 [line 21]\n " shape="box"]
14 -> 13 ;

@ -16,7 +16,7 @@ digraph iCFG {
116 -> 115 ;
115 [label="115: Return Stmt \n n$0=*&r:class Val [line 141]\n n$1=_fun_Val_getI(&r:class Val &) [line 141]\n *&return:int =(1 / n$1) [line 141]\n " shape="box"]
115 [label="115: Return Stmt \n NONEn$0=*&r:class Val [line 141]\n n$1=_fun_Val_getI(&r:class Val &) [line 141]\n *&return:int =(1 / n$1) [line 141]\n " shape="box"]
115 -> 114 ;
@ -43,7 +43,7 @@ digraph iCFG {
109 -> 108 ;
108 [label="108: Return Stmt \n n$0=*&r:class Val [line 133]\n n$1=_fun_Val_getF(&r:class Val &) [line 133]\n *&return:int =(1 / n$1) [line 133]\n " shape="box"]
108 [label="108: Return Stmt \n NONEn$0=*&r:class Val [line 133]\n n$1=_fun_Val_getF(&r:class Val &) [line 133]\n *&return:int =(1 / n$1) [line 133]\n " shape="box"]
108 -> 107 ;
@ -124,7 +124,7 @@ digraph iCFG {
88 -> 87 ;
87 [label="87: Return Stmt \n n$0=*&r:class Ptr [line 108]\n n$1=_fun_Ptr_getI(&r:class Ptr &) [line 108]\n *&return:int =(1 / n$1) [line 108]\n " shape="box"]
87 [label="87: Return Stmt \n NONEn$0=*&r:class Ptr [line 108]\n n$1=_fun_Ptr_getI(&r:class Ptr &) [line 108]\n *&return:int =(1 / n$1) [line 108]\n " shape="box"]
87 -> 86 ;
@ -151,7 +151,7 @@ digraph iCFG {
81 -> 80 ;
80 [label="80: Return Stmt \n n$0=*&r:class Ptr [line 100]\n n$1=_fun_Ptr_getF(&r:class Ptr &) [line 100]\n *&return:int =(1 / n$1) [line 100]\n " shape="box"]
80 [label="80: Return Stmt \n NONEn$0=*&r:class Ptr [line 100]\n n$1=_fun_Ptr_getF(&r:class Ptr &) [line 100]\n *&return:int =(1 / n$1) [line 100]\n " shape="box"]
80 -> 79 ;
@ -232,7 +232,7 @@ digraph iCFG {
60 -> 59 ;
59 [label="59: Return Stmt \n n$0=*&r:class Ref [line 75]\n n$1=_fun_Ref_getI(&r:class Ref &) [line 75]\n *&return:int =(1 / n$1) [line 75]\n " shape="box"]
59 [label="59: Return Stmt \n NONEn$0=*&r:class Ref [line 75]\n n$1=_fun_Ref_getI(&r:class Ref &) [line 75]\n *&return:int =(1 / n$1) [line 75]\n " shape="box"]
59 -> 58 ;
@ -259,7 +259,7 @@ digraph iCFG {
53 -> 52 ;
52 [label="52: Return Stmt \n n$0=*&r:class Ref [line 67]\n n$1=_fun_Ref_getF(&r:class Ref &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"]
52 [label="52: Return Stmt \n NONEn$0=*&r:class Ref [line 67]\n n$1=_fun_Ref_getF(&r:class Ref &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"]
52 -> 51 ;

@ -1,6 +1,6 @@
/* @generated */
digraph iCFG {
123 [label="123: Call _fun_X_zero \n n$4=_fun_get_global_ref() [line 124]\n n$5=*n$4:class X [line 124]\n _fun_X_zero(n$4:class X &) [line 124]\n " shape="box"]
123 [label="123: Call _fun_X_zero \n n$4=_fun_get_global_ref() [line 124]\n NONEn$5=*n$4:class X [line 124]\n _fun_X_zero(n$4:class X &) [line 124]\n " shape="box"]
123 -> 122 ;
@ -8,7 +8,7 @@ digraph iCFG {
122 -> 121 ;
121 [label="121: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 126]\n n$1=*n$0:class X [line 126]\n n$2=_fun_X_div(n$0:class X &) [line 126]\n " shape="box"]
121 [label="121: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 126]\n NONEn$1=*n$0:class X [line 126]\n n$2=_fun_X_div(n$0:class X &) [line 126]\n " shape="box"]
121 -> 120 ;
@ -19,7 +19,7 @@ digraph iCFG {
119 -> 123 ;
118 [label="118: Call _fun_X_nonzero \n n$4=_fun_get_global_ref() [line 118]\n n$5=*n$4:class X [line 118]\n _fun_X_nonzero(n$4:class X &) [line 118]\n " shape="box"]
118 [label="118: Call _fun_X_nonzero \n n$4=_fun_get_global_ref() [line 118]\n NONEn$5=*n$4:class X [line 118]\n _fun_X_nonzero(n$4:class X &) [line 118]\n " shape="box"]
118 -> 117 ;
@ -27,7 +27,7 @@ digraph iCFG {
117 -> 116 ;
116 [label="116: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 120]\n n$1=*n$0:class X [line 120]\n n$2=_fun_X_div(n$0:class X &) [line 120]\n " shape="box"]
116 [label="116: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 120]\n NONEn$1=*n$0:class X [line 120]\n n$2=_fun_X_div(n$0:class X &) [line 120]\n " shape="box"]
116 -> 115 ;
@ -42,11 +42,11 @@ digraph iCFG {
113 -> 112 ;
112 [label="112: Call _fun_X_nonzero \n n$3=_fun_get_global_ref() [line 113]\n n$4=*n$3:class X [line 113]\n _fun_X_nonzero(n$3:class X &) [line 113]\n " shape="box"]
112 [label="112: Call _fun_X_nonzero \n n$3=_fun_get_global_ref() [line 113]\n NONEn$4=*n$3:class X [line 113]\n _fun_X_nonzero(n$3:class X &) [line 113]\n " shape="box"]
112 -> 111 ;
111 [label="111: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 114]\n n$1=*n$0:class X [line 114]\n n$2=_fun_X_div(n$0:class X &) [line 114]\n " shape="box"]
111 [label="111: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 114]\n NONEn$1=*n$0:class X [line 114]\n n$2=_fun_X_div(n$0:class X &) [line 114]\n " shape="box"]
111 -> 110 ;
@ -61,11 +61,11 @@ digraph iCFG {
108 -> 107 ;
107 [label="107: Call _fun_X_zero \n n$3=_fun_get_global_ref() [line 107]\n n$4=*n$3:class X [line 107]\n _fun_X_zero(n$3:class X &) [line 107]\n " shape="box"]
107 [label="107: Call _fun_X_zero \n n$3=_fun_get_global_ref() [line 107]\n NONEn$4=*n$3:class X [line 107]\n _fun_X_zero(n$3:class X &) [line 107]\n " shape="box"]
107 -> 106 ;
106 [label="106: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 108]\n n$1=*n$0:class X [line 108]\n n$2=_fun_X_div(n$0:class X &) [line 108]\n " shape="box"]
106 [label="106: Call _fun_X_div \n n$0=_fun_get_global_ref() [line 108]\n NONEn$1=*n$0:class X [line 108]\n n$2=_fun_X_div(n$0:class X &) [line 108]\n " shape="box"]
106 -> 105 ;
@ -80,7 +80,7 @@ digraph iCFG {
103 -> 102 ;
102 [label="102: Return Stmt \n n$0=*&x:class X & [line 102]\n n$1=*n$0:class X [line 102]\n n$2=_fun_X_div(n$0:class X &) [line 102]\n *&return:int =n$2 [line 102]\n " shape="box"]
102 [label="102: Return Stmt \n n$0=*&x:class X & [line 102]\n NONEn$1=*n$0:class X [line 102]\n n$2=_fun_X_div(n$0:class X &) [line 102]\n *&return:int =n$2 [line 102]\n " shape="box"]
102 -> 101 ;
@ -95,7 +95,7 @@ digraph iCFG {
99 -> 98 ;
98 [label="98: Return Stmt \n n$0=*&x:class X & [line 97]\n n$1=*n$0:class X [line 97]\n n$2=_fun_X_div(n$0:class X &) [line 97]\n *&return:int =n$2 [line 97]\n " shape="box"]
98 [label="98: Return Stmt \n n$0=*&x:class X & [line 97]\n NONEn$1=*n$0:class X [line 97]\n n$2=_fun_X_div(n$0:class X &) [line 97]\n *&return:int =n$2 [line 97]\n " shape="box"]
98 -> 97 ;
@ -110,7 +110,7 @@ digraph iCFG {
95 -> 94 ;
94 [label="94: Return Stmt \n n$0=*&x:class X & [line 92]\n n$1=*n$0:class X [line 92]\n n$2=_fun_X_div(n$0:class X &) [line 92]\n *&return:int =n$2 [line 92]\n " shape="box"]
94 [label="94: Return Stmt \n n$0=*&x:class X & [line 92]\n NONEn$1=*n$0:class X [line 92]\n n$2=_fun_X_div(n$0:class X &) [line 92]\n *&return:int =n$2 [line 92]\n " shape="box"]
94 -> 93 ;
@ -125,7 +125,7 @@ digraph iCFG {
91 -> 90 ;
90 [label="90: Return Stmt \n n$0=*&x:class X & [line 87]\n n$1=*n$0:class X [line 87]\n n$2=_fun_X_div(n$0:class X &) [line 87]\n *&return:int =n$2 [line 87]\n " shape="box"]
90 [label="90: Return Stmt \n n$0=*&x:class X & [line 87]\n NONEn$1=*n$0:class X [line 87]\n n$2=_fun_X_div(n$0:class X &) [line 87]\n *&return:int =n$2 [line 87]\n " shape="box"]
90 -> 89 ;
@ -136,7 +136,7 @@ digraph iCFG {
88 -> 91 ;
87 [label="87: Call _fun_X_zero \n n$4=_fun_get_global_ptr() [line 80]\n n$5=*n$4:class X [line 80]\n _fun_X_zero(n$4:class X *) [line 80]\n " shape="box"]
87 [label="87: Call _fun_X_zero \n n$4=_fun_get_global_ptr() [line 80]\n NONEn$5=*n$4:class X [line 80]\n _fun_X_zero(n$4:class X *) [line 80]\n " shape="box"]
87 -> 86 ;
@ -144,7 +144,7 @@ digraph iCFG {
86 -> 85 ;
85 [label="85: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 82]\n n$1=*n$0:class X [line 82]\n n$2=_fun_X_div(n$0:class X *) [line 82]\n " shape="box"]
85 [label="85: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 82]\n NONEn$1=*n$0:class X [line 82]\n n$2=_fun_X_div(n$0:class X *) [line 82]\n " shape="box"]
85 -> 84 ;
@ -155,7 +155,7 @@ digraph iCFG {
83 -> 87 ;
82 [label="82: Call _fun_X_nonzero \n n$4=_fun_get_global_ptr() [line 74]\n n$5=*n$4:class X [line 74]\n _fun_X_nonzero(n$4:class X *) [line 74]\n " shape="box"]
82 [label="82: Call _fun_X_nonzero \n n$4=_fun_get_global_ptr() [line 74]\n NONEn$5=*n$4:class X [line 74]\n _fun_X_nonzero(n$4:class X *) [line 74]\n " shape="box"]
82 -> 81 ;
@ -163,7 +163,7 @@ digraph iCFG {
81 -> 80 ;
80 [label="80: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 76]\n n$1=*n$0:class X [line 76]\n n$2=_fun_X_div(n$0:class X *) [line 76]\n " shape="box"]
80 [label="80: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 76]\n NONEn$1=*n$0:class X [line 76]\n n$2=_fun_X_div(n$0:class X *) [line 76]\n " shape="box"]
80 -> 79 ;
@ -178,11 +178,11 @@ digraph iCFG {
77 -> 76 ;
76 [label="76: Call _fun_X_nonzero \n n$3=_fun_get_global_ptr() [line 69]\n n$4=*n$3:class X [line 69]\n _fun_X_nonzero(n$3:class X *) [line 69]\n " shape="box"]
76 [label="76: Call _fun_X_nonzero \n n$3=_fun_get_global_ptr() [line 69]\n NONEn$4=*n$3:class X [line 69]\n _fun_X_nonzero(n$3:class X *) [line 69]\n " shape="box"]
76 -> 75 ;
75 [label="75: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 70]\n n$1=*n$0:class X [line 70]\n n$2=_fun_X_div(n$0:class X *) [line 70]\n " shape="box"]
75 [label="75: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 70]\n NONEn$1=*n$0:class X [line 70]\n n$2=_fun_X_div(n$0:class X *) [line 70]\n " shape="box"]
75 -> 74 ;
@ -197,11 +197,11 @@ digraph iCFG {
72 -> 71 ;
71 [label="71: Call _fun_X_zero \n n$3=_fun_get_global_ptr() [line 63]\n n$4=*n$3:class X [line 63]\n _fun_X_zero(n$3:class X *) [line 63]\n " shape="box"]
71 [label="71: Call _fun_X_zero \n n$3=_fun_get_global_ptr() [line 63]\n NONEn$4=*n$3:class X [line 63]\n _fun_X_zero(n$3:class X *) [line 63]\n " shape="box"]
71 -> 70 ;
70 [label="70: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 64]\n n$1=*n$0:class X [line 64]\n n$2=_fun_X_div(n$0:class X *) [line 64]\n " shape="box"]
70 [label="70: Call _fun_X_div \n n$0=_fun_get_global_ptr() [line 64]\n NONEn$1=*n$0:class X [line 64]\n n$2=_fun_X_div(n$0:class X *) [line 64]\n " shape="box"]
70 -> 69 ;
@ -216,7 +216,7 @@ digraph iCFG {
67 -> 66 ;
66 [label="66: Return Stmt \n n$1=*&x:class X * [line 57]\n n$2=*n$1:class X [line 57]\n n$3=_fun_X_div(n$1:class X *) [line 57]\n *&return:int =n$3 [line 57]\n " shape="box"]
66 [label="66: Return Stmt \n n$1=*&x:class X * [line 57]\n NONEn$2=*n$1:class X [line 57]\n n$3=_fun_X_div(n$1:class X *) [line 57]\n *&return:int =n$3 [line 57]\n " shape="box"]
66 -> 61 ;
@ -248,7 +248,7 @@ digraph iCFG {
59 -> 58 ;
58 [label="58: Return Stmt \n n$1=*&x:class X * [line 50]\n n$2=*n$1:class X [line 50]\n n$3=_fun_X_div(n$1:class X *) [line 50]\n *&return:int =n$3 [line 50]\n " shape="box"]
58 [label="58: Return Stmt \n n$1=*&x:class X * [line 50]\n NONEn$2=*n$1:class X [line 50]\n n$3=_fun_X_div(n$1:class X *) [line 50]\n *&return:int =n$3 [line 50]\n " shape="box"]
58 -> 53 ;
@ -280,7 +280,7 @@ digraph iCFG {
51 -> 50 ;
50 [label="50: Return Stmt \n n$1=*&x:class X * [line 43]\n n$2=*n$1:class X [line 43]\n n$3=_fun_X_div(n$1:class X *) [line 43]\n *&return:int =n$3 [line 43]\n " shape="box"]
50 [label="50: Return Stmt \n n$1=*&x:class X * [line 43]\n NONEn$2=*n$1:class X [line 43]\n n$3=_fun_X_div(n$1:class X *) [line 43]\n *&return:int =n$3 [line 43]\n " shape="box"]
50 -> 45 ;
@ -312,7 +312,7 @@ digraph iCFG {
43 -> 42 ;
42 [label="42: Return Stmt \n n$1=*&x:class X * [line 36]\n n$2=*n$1:class X [line 36]\n n$3=_fun_X_div(n$1:class X *) [line 36]\n *&return:int =n$3 [line 36]\n " shape="box"]
42 [label="42: Return Stmt \n n$1=*&x:class X * [line 36]\n NONEn$2=*n$1:class X [line 36]\n n$3=_fun_X_div(n$1:class X *) [line 36]\n *&return:int =n$3 [line 36]\n " shape="box"]
42 -> 37 ;
@ -373,7 +373,7 @@ digraph iCFG {
27 -> 29 ;
26 [label="26: Call _fun_X_nonzero \n n$0=*&x:class X & [line 25]\n n$1=*n$0:class X [line 25]\n _fun_X_nonzero(n$0:class X &) [line 25]\n " shape="box"]
26 [label="26: Call _fun_X_nonzero \n n$0=*&x:class X & [line 25]\n NONEn$1=*n$0:class X [line 25]\n _fun_X_nonzero(n$0:class X &) [line 25]\n " shape="box"]
26 -> 25 ;
@ -384,7 +384,7 @@ digraph iCFG {
24 -> 26 ;
23 [label="23: Call _fun_X_zero \n n$0=*&x:class X & [line 23]\n n$1=*n$0:class X [line 23]\n _fun_X_zero(n$0:class X &) [line 23]\n " shape="box"]
23 [label="23: Call _fun_X_zero \n n$0=*&x:class X & [line 23]\n NONEn$1=*n$0:class X [line 23]\n _fun_X_zero(n$0:class X &) [line 23]\n " shape="box"]
23 -> 22 ;
@ -406,7 +406,7 @@ digraph iCFG {
18 -> 20 ;
17 [label="17: Call _fun_X_nonzero \n n$0=*&x:class X * [line 19]\n n$1=*n$0:class X [line 19]\n _fun_X_nonzero(n$0:class X *) [line 19]\n " shape="box"]
17 [label="17: Call _fun_X_nonzero \n n$0=*&x:class X * [line 19]\n NONEn$1=*n$0:class X [line 19]\n _fun_X_nonzero(n$0:class X *) [line 19]\n " shape="box"]
17 -> 16 ;
@ -417,7 +417,7 @@ digraph iCFG {
15 -> 17 ;
14 [label="14: Call _fun_X_zero \n n$0=*&x:class X * [line 17]\n n$1=*n$0:class X [line 17]\n _fun_X_zero(n$0:class X *) [line 17]\n " shape="box"]
14 [label="14: Call _fun_X_zero \n n$0=*&x:class X * [line 17]\n NONEn$1=*n$0:class X [line 17]\n _fun_X_zero(n$0:class X *) [line 17]\n " shape="box"]
14 -> 13 ;

@ -1,6 +1,6 @@
/* @generated */
digraph iCFG {
30 [label="30: Return Stmt \n n$0=*&s:class ExecStore<Choose2> & [line 41]\n n$1=*n$0.f:class Choose2 [line 41]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,1:int ) [line 41]\n *&return:int =n$2 [line 41]\n " shape="box"]
30 [label="30: Return Stmt \n n$0=*&s:class ExecStore<Choose2> & [line 41]\n NONEn$1=*n$0.f:class Choose2 [line 41]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,1:int ) [line 41]\n *&return:int =n$2 [line 41]\n " shape="box"]
30 -> 29 ;
@ -11,7 +11,7 @@ digraph iCFG {
28 -> 30 ;
27 [label="27: Return Stmt \n n$0=*&s:class ExecStore<Choose2> & [line 39]\n n$1=*n$0.f:class Choose2 [line 39]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,0:int ) [line 39]\n *&return:int =n$2 [line 39]\n " shape="box"]
27 [label="27: Return Stmt \n n$0=*&s:class ExecStore<Choose2> & [line 39]\n NONEn$1=*n$0.f:class Choose2 [line 39]\n n$2=_fun_Choose2_extra(n$0.f:class Choose2 &,0:int ) [line 39]\n *&return:int =n$2 [line 39]\n " shape="box"]
27 -> 26 ;
@ -22,7 +22,7 @@ digraph iCFG {
25 -> 27 ;
24 [label="24: Return Stmt \n n$0=*&s:class ExecStore<Choose2> & [line 36]\n n$1=*n$0:class ExecStore<Choose2> [line 36]\n n$2=_fun_ExecStore<Choose2>_call_div(n$0:class ExecStore<Choose2> &,1:int ) [line 36]\n *&return:int =n$2 [line 36]\n " shape="box"]
24 [label="24: Return Stmt \n n$0=*&s:class ExecStore<Choose2> & [line 36]\n NONEn$1=*n$0:class ExecStore<Choose2> [line 36]\n n$2=_fun_ExecStore<Choose2>_call_div(n$0:class ExecStore<Choose2> &,1:int ) [line 36]\n *&return:int =n$2 [line 36]\n " shape="box"]
24 -> 23 ;
@ -33,7 +33,7 @@ digraph iCFG {
22 -> 24 ;
21 [label="21: Return Stmt \n n$0=*&s:class ExecStore<Choose1> & [line 32]\n n$1=*n$0:class ExecStore<Choose1> [line 32]\n n$2=_fun_ExecStore<Choose1>_call_div(n$0:class ExecStore<Choose1> &,1:int ) [line 32]\n *&return:int =n$2 [line 32]\n " shape="box"]
21 [label="21: Return Stmt \n n$0=*&s:class ExecStore<Choose1> & [line 32]\n NONEn$1=*n$0:class ExecStore<Choose1> [line 32]\n n$2=_fun_ExecStore<Choose1>_call_div(n$0:class ExecStore<Choose1> &,1:int ) [line 32]\n *&return:int =n$2 [line 32]\n " shape="box"]
21 -> 20 ;
@ -44,7 +44,7 @@ digraph iCFG {
19 -> 21 ;
18 [label="18: Return Stmt \n n$0=*&s:class ExecStore<Choose1> & [line 30]\n n$1=*n$0:class ExecStore<Choose1> [line 30]\n n$2=_fun_ExecStore<Choose1>_call_div(n$0:class ExecStore<Choose1> &,0:int ) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"]
18 [label="18: Return Stmt \n n$0=*&s:class ExecStore<Choose1> & [line 30]\n NONEn$1=*n$0:class ExecStore<Choose1> [line 30]\n n$2=_fun_ExecStore<Choose1>_call_div(n$0:class ExecStore<Choose1> &,0:int ) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"]
18 -> 17 ;
@ -55,7 +55,7 @@ digraph iCFG {
16 -> 18 ;
15 [label="15: Return Stmt \n n$0=*&this:class ExecStore<Choose2> * [line 26]\n n$1=*n$0.f:class Choose2 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose2_div(n$0.f:class Choose2 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"]
15 [label="15: Return Stmt \n n$0=*&this:class ExecStore<Choose2> * [line 26]\n NONEn$1=*n$0.f:class Choose2 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose2_div(n$0.f:class Choose2 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"]
15 -> 14 ;
@ -66,7 +66,7 @@ digraph iCFG {
13 -> 15 ;
12 [label="12: Return Stmt \n n$0=*&this:class ExecStore<Choose1> * [line 26]\n n$1=*n$0.f:class Choose1 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose1_div(n$0.f:class Choose1 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"]
12 [label="12: Return Stmt \n n$0=*&this:class ExecStore<Choose1> * [line 26]\n NONEn$1=*n$0.f:class Choose1 [line 26]\n n$2=*&a:int [line 26]\n n$3=_fun_Choose1_div(n$0.f:class Choose1 &,n$2:int ,0:int ) [line 26]\n *&return:int =n$3 [line 26]\n " shape="box"]
12 -> 11 ;

@ -112,7 +112,7 @@ digraph iCFG {
20 -> 23 ;
19 [label="19: Return Stmt \n n$0=*&x:class X3 & [line 30]\n n$1=*n$0:class X3 [line 30]\n n$2=_fun_X3_get(n$0:class X3 &) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"]
19 [label="19: Return Stmt \n n$0=*&x:class X3 & [line 30]\n NONEn$1=*n$0:class X3 [line 30]\n n$2=_fun_X3_get(n$0:class X3 &) [line 30]\n *&return:int =n$2 [line 30]\n " shape="box"]
19 -> 18 ;
@ -123,7 +123,7 @@ digraph iCFG {
17 -> 19 ;
16 [label="16: Return Stmt \n n$0=*&x:class X1 & [line 24]\n n$1=*n$0:class X1 [line 24]\n n$2=_fun_X1_getVal(n$0:class X1 &) [line 24]\n *&return:int =n$2 [line 24]\n " shape="box"]
16 [label="16: Return Stmt \n n$0=*&x:class X1 & [line 24]\n NONEn$1=*n$0:class X1 [line 24]\n n$2=_fun_X1_getVal(n$0:class X1 &) [line 24]\n *&return:int =n$2 [line 24]\n " shape="box"]
16 -> 15 ;

@ -12,7 +12,7 @@ digraph iCFG {
73 -> 72 ;
72 [label="72: Return Stmt \n n$0=*&g:class GetterTempl<X1> [line 74]\n n$1=_fun_GetterTempl<X1>_get<X1>(&g:class GetterTempl<X1> &,&x1_1:class X1 &,&x1_2:class X1 &) [line 74]\n *&return:int =(1 / n$1) [line 74]\n " shape="box"]
72 [label="72: Return Stmt \n NONEn$0=*&g:class GetterTempl<X1> [line 74]\n n$1=_fun_GetterTempl<X1>_get<X1>(&g:class GetterTempl<X1> &,&x1_1:class X1 &,&x1_2:class X1 &) [line 74]\n *&return:int =(1 / n$1) [line 74]\n " shape="box"]
72 -> 71 ;
@ -35,7 +35,7 @@ digraph iCFG {
67 -> 66 ;
66 [label="66: Return Stmt \n n$0=*&g:class GetterTempl<X2> [line 67]\n n$1=_fun_GetterTempl<X2>_get<X1>(&g:class GetterTempl<X2> &,&x2:class X2 &,&x1:class X1 &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"]
66 [label="66: Return Stmt \n NONEn$0=*&g:class GetterTempl<X2> [line 67]\n n$1=_fun_GetterTempl<X2>_get<X1>(&g:class GetterTempl<X2> &,&x2:class X2 &,&x1:class X1 &) [line 67]\n *&return:int =(1 / n$1) [line 67]\n " shape="box"]
66 -> 65 ;
@ -58,7 +58,7 @@ digraph iCFG {
61 -> 60 ;
60 [label="60: Return Stmt \n n$0=*&g:class GetterTempl<X2> [line 60]\n n$1=_fun_GetterTempl<X2>_get<X2>(&g:class GetterTempl<X2> &,&x2_1:class X2 &,&x2_2:class X2 &) [line 60]\n *&return:int =(1 / n$1) [line 60]\n " shape="box"]
60 [label="60: Return Stmt \n NONEn$0=*&g:class GetterTempl<X2> [line 60]\n n$1=_fun_GetterTempl<X2>_get<X2>(&g:class GetterTempl<X2> &,&x2_1:class X2 &,&x2_2:class X2 &) [line 60]\n *&return:int =(1 / n$1) [line 60]\n " shape="box"]
60 -> 59 ;
@ -81,7 +81,7 @@ digraph iCFG {
55 -> 54 ;
54 [label="54: Return Stmt \n n$0=*&g:class GetterTempl<X3> [line 53]\n n$1=_fun_GetterTempl<X3>_get<X2>(&g:class GetterTempl<X3> &,&x3:class X3 &,&x2:class X2 &) [line 53]\n *&return:int =(1 / n$1) [line 53]\n " shape="box"]
54 [label="54: Return Stmt \n NONEn$0=*&g:class GetterTempl<X3> [line 53]\n n$1=_fun_GetterTempl<X3>_get<X2>(&g:class GetterTempl<X3> &,&x3:class X3 &,&x2:class X2 &) [line 53]\n *&return:int =(1 / n$1) [line 53]\n " shape="box"]
54 -> 53 ;
@ -100,7 +100,7 @@ digraph iCFG {
50 -> 49 ;
49 [label="49: Return Stmt \n n$0=*&g:class Getter [line 46]\n n$1=_fun_Getter_get<X1>(&g:class Getter &,&x1:class X1 &) [line 46]\n *&return:int =(1 / n$1) [line 46]\n " shape="box"]
49 [label="49: Return Stmt \n NONEn$0=*&g:class Getter [line 46]\n n$1=_fun_Getter_get<X1>(&g:class Getter &,&x1:class X1 &) [line 46]\n *&return:int =(1 / n$1) [line 46]\n " shape="box"]
49 -> 48 ;
@ -119,7 +119,7 @@ digraph iCFG {
45 -> 44 ;
44 [label="44: Return Stmt \n n$0=*&g:class Getter [line 40]\n n$1=_fun_Getter_get<X2>(&g:class Getter &,&x2:class X2 &) [line 40]\n *&return:int =(1 / n$1) [line 40]\n " shape="box"]
44 [label="44: Return Stmt \n NONEn$0=*&g:class Getter [line 40]\n n$1=_fun_Getter_get<X2>(&g:class Getter &,&x2:class X2 &) [line 40]\n *&return:int =(1 / n$1) [line 40]\n " shape="box"]
44 -> 43 ;
@ -137,7 +137,7 @@ digraph iCFG {
40 -> 41 ;
39 [label="39: Return Stmt \n n$0=*&t:class X1 & [line 33]\n n$1=*n$0:class X1 [line 33]\n n$2=_fun_X1_get(n$0:class X1 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n n$4=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
39 [label="39: Return Stmt \n n$0=*&t:class X1 & [line 33]\n NONEn$1=*n$0:class X1 [line 33]\n n$2=_fun_X1_get(n$0:class X1 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n NONEn$4=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
39 -> 38 ;
@ -155,7 +155,7 @@ digraph iCFG {
35 -> 36 ;
34 [label="34: Return Stmt \n n$0=*&t:class X2 & [line 33]\n n$1=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n n$4=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
34 [label="34: Return Stmt \n n$0=*&t:class X2 & [line 33]\n NONEn$1=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X1 & [line 33]\n NONEn$4=*n$3:class X1 [line 33]\n n$5=_fun_X1_get(n$3:class X1 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
34 -> 33 ;
@ -166,7 +166,7 @@ digraph iCFG {
32 -> 34 ;
31 [label="31: Return Stmt \n n$0=*&t:class X2 & [line 33]\n n$1=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n n$4=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
31 [label="31: Return Stmt \n n$0=*&t:class X2 & [line 33]\n NONEn$1=*n$0:class X2 [line 33]\n n$2=_fun_X2_get(n$0:class X2 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n NONEn$4=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
31 -> 30 ;
@ -184,7 +184,7 @@ digraph iCFG {
27 -> 28 ;
26 [label="26: Return Stmt \n n$0=*&t:class X3 & [line 33]\n n$1=*n$0:class X3 [line 33]\n n$2=_fun_X3_get(n$0:class X3 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n n$4=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
26 [label="26: Return Stmt \n n$0=*&t:class X3 & [line 33]\n NONEn$1=*n$0:class X3 [line 33]\n n$2=_fun_X3_get(n$0:class X3 &) [line 33]\n n$3=*&s:class X2 & [line 33]\n NONEn$4=*n$3:class X2 [line 33]\n n$5=_fun_X2_get(n$3:class X2 &) [line 33]\n *&return:int =(n$2 + n$5) [line 33]\n " shape="box"]
26 -> 25 ;
@ -202,7 +202,7 @@ digraph iCFG {
22 -> 23 ;
21 [label="21: Return Stmt \n n$0=*&s:class X1 & [line 25]\n n$1=*n$0:class X1 [line 25]\n n$2=_fun_X1_get(n$0:class X1 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"]
21 [label="21: Return Stmt \n n$0=*&s:class X1 & [line 25]\n NONEn$1=*n$0:class X1 [line 25]\n n$2=_fun_X1_get(n$0:class X1 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"]
21 -> 20 ;
@ -213,7 +213,7 @@ digraph iCFG {
19 -> 21 ;
18 [label="18: Return Stmt \n n$0=*&s:class X2 & [line 25]\n n$1=*n$0:class X2 [line 25]\n n$2=_fun_X2_get(n$0:class X2 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"]
18 [label="18: Return Stmt \n n$0=*&s:class X2 & [line 25]\n NONEn$1=*n$0:class X2 [line 25]\n n$2=_fun_X2_get(n$0:class X2 &) [line 25]\n *&return:int =n$2 [line 25]\n " shape="box"]
18 -> 17 ;

@ -12,27 +12,27 @@ digraph iCFG {
23 -> 22 ;
22 [label="22: Call _fun_Base_fun \n n$15=*&b:class Base * [line 26]\n n$16=*n$15:class Base [line 26]\n n$17=_fun_Base_fun(n$15:class Base *) [line 26]\n " shape="box"]
22 [label="22: Call _fun_Base_fun \n n$15=*&b:class Base * [line 26]\n NONEn$16=*n$15:class Base [line 26]\n n$17=_fun_Base_fun(n$15:class Base *) [line 26]\n " shape="box"]
22 -> 21 ;
21 [label="21: Call _fun_Base_fun \n n$12=*&s1:class Base * [line 27]\n n$13=*n$12:class Base [line 27]\n n$14=_fun_Base_fun(n$12:class Base *) [line 27]\n " shape="box"]
21 [label="21: Call _fun_Base_fun \n n$12=*&s1:class Base * [line 27]\n NONEn$13=*n$12:class Base [line 27]\n n$14=_fun_Base_fun(n$12:class Base *) [line 27]\n " shape="box"]
21 -> 20 ;
20 [label="20: Call _fun_Base_fun \n n$9=*&s2:class Sub * [line 28]\n n$10=*n$9:class Sub [line 28]\n n$11=_fun_Base_fun(n$9:class Sub *) [line 28]\n " shape="box"]
20 [label="20: Call _fun_Base_fun \n n$9=*&s2:class Sub * [line 28]\n NONEn$10=*n$9:class Sub [line 28]\n n$11=_fun_Base_fun(n$9:class Sub *) [line 28]\n " shape="box"]
20 -> 19 ;
19 [label="19: Call _fun_Base_fun_redefine \n n$6=*&b:class Base * [line 30]\n n$7=*n$6:class Base [line 30]\n n$8=_fun_Base_fun_redefine(n$6:class Base *) [line 30]\n " shape="box"]
19 [label="19: Call _fun_Base_fun_redefine \n n$6=*&b:class Base * [line 30]\n NONEn$7=*n$6:class Base [line 30]\n n$8=_fun_Base_fun_redefine(n$6:class Base *) [line 30]\n " shape="box"]
19 -> 18 ;
18 [label="18: Call _fun_Base_fun_redefine \n n$3=*&s1:class Base * [line 31]\n n$4=*n$3:class Base [line 31]\n n$5=_fun_Base_fun_redefine(n$3:class Base *) [line 31]\n " shape="box"]
18 [label="18: Call _fun_Base_fun_redefine \n n$3=*&s1:class Base * [line 31]\n NONEn$4=*n$3:class Base [line 31]\n n$5=_fun_Base_fun_redefine(n$3:class Base *) [line 31]\n " shape="box"]
18 -> 17 ;
17 [label="17: Call _fun_Sub_fun_redefine \n n$0=*&s2:class Sub * [line 32]\n n$1=*n$0:class Sub [line 32]\n n$2=_fun_Sub_fun_redefine(n$0:class Sub *) [line 32]\n " shape="box"]
17 [label="17: Call _fun_Sub_fun_redefine \n n$0=*&s2:class Sub * [line 32]\n NONEn$1=*n$0:class Sub [line 32]\n n$2=_fun_Sub_fun_redefine(n$0:class Sub *) [line 32]\n " shape="box"]
17 -> 16 ;

@ -22,7 +22,7 @@ digraph iCFG {
22 -> 24 ;
21 [label="21: DeclStmt \n n$1=*&x:class X & [line 36]\n n$2=*n$1:class X [line 36]\n n$3=_fun_X_operator[](n$1:class X &,0:int ) [line 36]\n *&v:int =n$3 [line 36]\n " shape="box"]
21 [label="21: DeclStmt \n n$1=*&x:class X & [line 36]\n NONEn$2=*n$1:class X [line 36]\n n$3=_fun_X_operator[](n$1:class X &,0:int ) [line 36]\n *&v:int =n$3 [line 36]\n " shape="box"]
21 -> 20 ;

@ -4,7 +4,7 @@ digraph iCFG {
41 -> 40 ;
40 [label="40: Return Stmt \n n$0=*&z:class Z * [line 66]\n n$1=*n$0:class Z [line 66]\n n$2=_fun_Z_getF(n$0:class Z *) [line 66]\n *&return:int =(1 / n$2) [line 66]\n " shape="box"]
40 [label="40: Return Stmt \n n$0=*&z:class Z * [line 66]\n NONEn$1=*n$0:class Z [line 66]\n n$2=_fun_Z_getF(n$0:class Z *) [line 66]\n *&return:int =(1 / n$2) [line 66]\n " shape="box"]
40 -> 39 ;
@ -23,7 +23,7 @@ digraph iCFG {
36 -> 35 ;
35 [label="35: Return Stmt \n n$0=*&z:class Z [line 58]\n n$1=_fun_Z_getF(&z:class Z &) [line 58]\n *&return:int =(1 / n$1) [line 58]\n " shape="box"]
35 [label="35: Return Stmt \n NONEn$0=*&z:class Z [line 58]\n n$1=_fun_Z_getF(&z:class Z &) [line 58]\n *&return:int =(1 / n$1) [line 58]\n " shape="box"]
35 -> 34 ;
@ -63,7 +63,7 @@ digraph iCFG {
26 -> 25 ;
25 [label="25: Return Stmt \n n$0=*&x:class X [line 52]\n n$1=_fun_X_getF(&x:class X &) [line 52]\n *&return:int =(1 / n$1) [line 52]\n " shape="box"]
25 [label="25: Return Stmt \n NONEn$0=*&x:class X [line 52]\n n$1=_fun_X_getF(&x:class X &) [line 52]\n *&return:int =(1 / n$1) [line 52]\n " shape="box"]
25 -> 24 ;
@ -78,7 +78,7 @@ digraph iCFG {
22 -> 21 ;
21 [label="21: Return Stmt \n n$0=*&x:class X * [line 42]\n n$1=*n$0:class X [line 42]\n n$2=_fun_X_getF(n$0:class X *) [line 42]\n *&return:int =(1 / n$2) [line 42]\n " shape="box"]
21 [label="21: Return Stmt \n n$0=*&x:class X * [line 42]\n NONEn$1=*n$0:class X [line 42]\n n$2=_fun_X_getF(n$0:class X *) [line 42]\n *&return:int =(1 / n$2) [line 42]\n " shape="box"]
21 -> 20 ;
@ -97,7 +97,7 @@ digraph iCFG {
17 -> 16 ;
16 [label="16: Return Stmt \n n$0=*&x:class X [line 37]\n n$1=_fun_X_getF(&x:class X &) [line 37]\n *&return:int =(1 / n$1) [line 37]\n " shape="box"]
16 [label="16: Return Stmt \n NONEn$0=*&x:class X [line 37]\n n$1=_fun_X_getF(&x:class X &) [line 37]\n *&return:int =(1 / n$1) [line 37]\n " shape="box"]
16 -> 15 ;

@ -20,7 +20,7 @@ digraph iCFG {
66 -> 68 ;
65 [label="65: BinaryOperatorStmt: EQ \n n$0=_fun_template_typeid<Person>(&person:class Person &) [line 64]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,&person:class Person ) [line 64]\n n$2=*n$1:class std::type_info [line 64]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 64]\n " shape="box"]
65 [label="65: BinaryOperatorStmt: EQ \n n$0=_fun_template_typeid<Person>(&person:class Person &) [line 64]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,&person:class Person ) [line 64]\n NONEn$2=*n$1:class std::type_info [line 64]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 64]\n " shape="box"]
65 -> 66 ;
@ -44,7 +44,7 @@ digraph iCFG {
60 -> 59 ;
59 [label="59: Return Stmt \n n$0=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$0.__type_name:void ) [line 59]\n n$1=*n$0:class std::type_info [line 59]\n n$2=_fun_std::type_info_name(n$0:class std::type_info &) [line 59]\n *&return:char *=n$2 [line 59]\n " shape="box"]
59 [label="59: Return Stmt \n n$0=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$0.__type_name:void ) [line 59]\n NONEn$1=*n$0:class std::type_info [line 59]\n n$2=_fun_std::type_info_name(n$0:class std::type_info &) [line 59]\n *&return:char *=n$2 [line 59]\n " shape="box"]
59 -> 58 ;
@ -75,7 +75,7 @@ digraph iCFG {
52 -> 54 ;
51 [label="51: BinaryOperatorStmt: EQ \n n$0=*&ptr:class Person * [line 50]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,n$0:class Person ) [line 50]\n n$2=*n$1:class std::type_info [line 50]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 50]\n n$4=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$4.__type_name:void ,&person:class Person ) [line 50]\n n$5=*n$4:class std::type_info [line 50]\n n$6=_fun_std::type_info_name(n$4:class std::type_info &) [line 50]\n " shape="box"]
51 [label="51: BinaryOperatorStmt: EQ \n n$0=*&ptr:class Person * [line 50]\n n$1=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$1.__type_name:void ,n$0:class Person ) [line 50]\n NONEn$2=*n$1:class std::type_info [line 50]\n n$3=_fun_std::type_info_name(n$1:class std::type_info &) [line 50]\n n$4=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$4.__type_name:void ,&person:class Person ) [line 50]\n NONEn$5=*n$4:class std::type_info [line 50]\n n$6=_fun_std::type_info_name(n$4:class std::type_info &) [line 50]\n " shape="box"]
51 -> 52 ;
@ -147,11 +147,11 @@ digraph iCFG {
34 -> 33 ;
33 [label="33: DeclStmt \n n$5=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$5.__type_name:void ,&t:int ) [line 31]\n n$6=*n$5:class std::type_info [line 31]\n n$7=_fun_std::type_info_name(n$5:class std::type_info &) [line 31]\n *&t_type_info:char *=n$7 [line 31]\n " shape="box"]
33 [label="33: DeclStmt \n n$5=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$5.__type_name:void ,&t:int ) [line 31]\n NONEn$6=*n$5:class std::type_info [line 31]\n n$7=_fun_std::type_info_name(n$5:class std::type_info &) [line 31]\n *&t_type_info:char *=n$7 [line 31]\n " shape="box"]
33 -> 32 ;
32 [label="32: DeclStmt \n n$2=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$2.__type_name:void ,&person:class Person ) [line 32]\n n$3=*n$2:class std::type_info [line 32]\n n$4=_fun_std::type_info_name(n$2:class std::type_info &) [line 32]\n *&person_type_info:char *=n$4 [line 32]\n " shape="box"]
32 [label="32: DeclStmt \n n$2=_fun___cxx_typeid(sizeof(class std::type_info ):void ,n$2.__type_name:void ,&person:class Person ) [line 32]\n NONEn$3=*n$2:class std::type_info [line 32]\n n$4=_fun_std::type_info_name(n$2:class std::type_info &) [line 32]\n *&person_type_info:char *=n$4 [line 32]\n " shape="box"]
32 -> 27 ;

Loading…
Cancel
Save