[clang trans] Simplify translation of if(not expr)

Summary:
```
n = v.empty();
if(!n) {
  v[0] = 1;
}
```
used to be translated as
```
n = v.empty();
if(n) {
  temp = 0;
} else {
  temp = 1;
}
// join point
if(temp) {
  v[0] = 1;
}
```
This diff removes the extra branching for if(not)

Reviewed By: jvillard

Differential Revision: D6008724

fbshipit-source-id: 40a8a40
master
Mehdi Bouaziz 7 years ago committed by Facebook Github Bot
parent 093bf285cc
commit 3b2e9c78de

@ -1526,7 +1526,9 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
Procdesc.append_locals procdesc [(Pvar.get_name pvar, var_typ)] ; Procdesc.append_locals procdesc [(Pvar.get_name pvar, var_typ)] ;
let continuation' = mk_cond_continuation trans_state.continuation in let continuation' = mk_cond_continuation trans_state.continuation in
let trans_state' = {trans_state with continuation= continuation'; succ_nodes= []} in let trans_state' = {trans_state with continuation= continuation'; succ_nodes= []} in
let res_trans_cond = exec_with_priority_exception trans_state' cond cond_trans in let res_trans_cond =
exec_with_priority_exception trans_state' cond (cond_trans ~negate_cond:false)
in
(* Note: by contruction prune nodes are leafs_nodes_cond *) (* Note: by contruction prune nodes are leafs_nodes_cond *)
do_branch true exp1 var_typ res_trans_cond.leaf_nodes join_node pvar ; do_branch true exp1 var_typ res_trans_cond.leaf_nodes join_node pvar ;
do_branch false exp2 var_typ res_trans_cond.leaf_nodes join_node pvar ; do_branch false exp2 var_typ res_trans_cond.leaf_nodes join_node pvar ;
@ -1573,11 +1575,13 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
(* Translate a condition for if/loops statement. It shorts-circuit and/or. *) (* Translate a condition for if/loops statement. It shorts-circuit and/or. *)
(* The invariant is that the translation of a condition always contains (at least) *) (* The invariant is that the translation of a condition always contains (at least) *)
(* the prune nodes. Moreover these are always the leaf nodes of the translation. *) (* the prune nodes. Moreover these are always the leaf nodes of the translation. *)
and cond_trans trans_state cond = and cond_trans ~negate_cond trans_state cond =
let context = trans_state.context in let context = trans_state.context in
let si, _ = Clang_ast_proj.get_stmt_tuple cond in let si, _ = Clang_ast_proj.get_stmt_tuple cond in
let sil_loc = CLocation.get_sil_location si context in let sil_loc = CLocation.get_sil_location si context in
let mk_prune_node b e ins = create_prune_node b e ins sil_loc Sil.Ik_if context in let mk_prune_node ~branch ~negate_cond e ins =
create_prune_node ~branch ~negate_cond e ins sil_loc Sil.Ik_if context
in
let extract_exp el = let extract_exp el =
extract_exp_from_list el extract_exp_from_list el
"@\nWARNING: Missing expression for Conditional operator. Need to be fixed" "@\nWARNING: Missing expression for Conditional operator. Need to be fixed"
@ -1609,13 +1613,13 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
let e', instrs' = let e', instrs' =
define_condition_side_effects res_trans_cond.exps res_trans_cond.instrs sil_loc define_condition_side_effects res_trans_cond.exps res_trans_cond.instrs sil_loc
in in
let prune_t = mk_prune_node true e' instrs' in let prune_t = mk_prune_node ~branch:true ~negate_cond e' instrs' in
let prune_f = mk_prune_node false e' instrs' in let prune_f = mk_prune_node ~branch:false ~negate_cond:(not negate_cond) e' instrs' in
List.iter List.iter
~f:(fun n' -> Procdesc.node_set_succs_exn context.procdesc n' [prune_t; prune_f] []) ~f:(fun n' -> Procdesc.node_set_succs_exn context.procdesc n' [prune_t; prune_f] [])
res_trans_cond.leaf_nodes ; res_trans_cond.leaf_nodes ;
let rnodes = let rnodes =
if Int.equal (List.length res_trans_cond.root_nodes) 0 then [prune_t; prune_f] if List.is_empty res_trans_cond.root_nodes then [prune_t; prune_f]
else res_trans_cond.root_nodes else res_trans_cond.root_nodes
in in
{ empty_res_trans with { empty_res_trans with
@ -1629,11 +1633,11 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
(* translation of s2 (i.e., the case when we need to fully evaluate*) (* translation of s2 (i.e., the case when we need to fully evaluate*)
(* the condition to decide its truth value). *) (* the condition to decide its truth value). *)
let short_circuit binop s1 s2 = let short_circuit binop s1 s2 =
let res_trans_s1 = cond_trans trans_state s1 in let res_trans_s1 = cond_trans ~negate_cond trans_state s1 in
let prune_nodes_t, prune_nodes_f = let prune_nodes_t, prune_nodes_f =
List.partition_tf ~f:is_true_prune_node res_trans_s1.leaf_nodes List.partition_tf ~f:is_true_prune_node res_trans_s1.leaf_nodes
in in
let res_trans_s2 = cond_trans trans_state s2 in let res_trans_s2 = cond_trans ~negate_cond trans_state s2 in
(* prune_to_s2 is the prune node that is connected with the root node of the *) (* prune_to_s2 is the prune node that is connected with the root node of the *)
(* translation of s2.*) (* translation of s2.*)
(* prune_to_short_c is the prune node that is connected directly with the branch *) (* prune_to_short_c is the prune node that is connected directly with the branch *)
@ -1651,7 +1655,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
~f:(fun n -> Procdesc.node_set_succs_exn context.procdesc n res_trans_s2.root_nodes []) ~f:(fun n -> Procdesc.node_set_succs_exn context.procdesc n res_trans_s2.root_nodes [])
prune_to_s2 ; prune_to_s2 ;
let root_nodes_to_parent = let root_nodes_to_parent =
if Int.equal (List.length res_trans_s1.root_nodes) 0 then res_trans_s1.leaf_nodes if List.is_empty res_trans_s1.root_nodes then res_trans_s1.leaf_nodes
else res_trans_s1.root_nodes else res_trans_s1.root_nodes
in in
let exp1, typ1 = extract_exp res_trans_s1.exps in let exp1, typ1 = extract_exp res_trans_s1.exps in
@ -1668,18 +1672,20 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
let open Clang_ast_t in let open Clang_ast_t in
match cond with match cond with
| BinaryOperator (_, [s1; s2], _, boi) -> ( | BinaryOperator (_, [s1; s2], _, boi) -> (
match boi.Clang_ast_t.boi_kind with match boi.boi_kind with
| `LAnd | `LAnd
-> short_circuit Binop.LAnd s1 s2 -> short_circuit (if negate_cond then Binop.LOr else Binop.LAnd) s1 s2
| `LOr | `LOr
-> short_circuit Binop.LOr s1 s2 -> short_circuit (if negate_cond then Binop.LAnd else Binop.LOr) s1 s2
| `LT | `GT | `LE | `GE | `EQ | `NE | `LT | `GT | `LE | `GE | `EQ | `NE
-> no_short_circuit_cond ~is_cmp:true -> no_short_circuit_cond ~is_cmp:true
| _ | _
-> no_short_circuit_cond ~is_cmp:false ) -> no_short_circuit_cond ~is_cmp:false )
| ParenExpr (_, [s], _) | ParenExpr (_, [s], _)
-> (* condition can be wrapped in parenthesys *) -> (* condition can be wrapped in parenthesys *)
cond_trans trans_state s cond_trans ~negate_cond trans_state s
| UnaryOperator (_, [s], _, {uoi_kind= `LNot})
-> cond_trans ~negate_cond:(not negate_cond) trans_state s
| _ | _
-> no_short_circuit_cond ~is_cmp:false -> no_short_circuit_cond ~is_cmp:false
@ -1720,7 +1726,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
-> (* set the flat to inform that we are translating a condition of a if *) -> (* set the flat to inform that we are translating a condition of a if *)
let continuation' = mk_cond_continuation trans_state.continuation in let continuation' = mk_cond_continuation trans_state.continuation in
let trans_state'' = {trans_state with continuation= continuation'; succ_nodes= []} in let trans_state'' = {trans_state with continuation= continuation'; succ_nodes= []} in
let res_trans_cond = cond_trans trans_state'' cond in let res_trans_cond = cond_trans ~negate_cond:false trans_state'' cond in
let res_trans_decl = declStmt_in_condition_trans trans_state decl_stmt res_trans_cond in let res_trans_decl = declStmt_in_condition_trans trans_state decl_stmt res_trans_cond in
(* Note: by contruction prune nodes are leafs_nodes_cond *) (* Note: by contruction prune nodes are leafs_nodes_cond *)
do_branch true stmt1 res_trans_cond.leaf_nodes ; do_branch true stmt1 res_trans_cond.leaf_nodes ;
@ -1837,12 +1843,14 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
let sil_eq_cond = Exp.BinOp (Binop.Eq, switch_e_cond', e_const') in let sil_eq_cond = Exp.BinOp (Binop.Eq, switch_e_cond', e_const') in
let sil_loc = CLocation.get_sil_location stmt_info context in let sil_loc = CLocation.get_sil_location stmt_info context in
let true_prune_node = let true_prune_node =
create_prune_node true [(sil_eq_cond, switch_e_cond'_typ)] create_prune_node ~branch:true ~negate_cond:false
res_trans_case_const.instrs sil_loc Sil.Ik_switch context [(sil_eq_cond, switch_e_cond'_typ)] res_trans_case_const.instrs sil_loc
Sil.Ik_switch context
in in
let false_prune_node = let false_prune_node =
create_prune_node false [(sil_eq_cond, switch_e_cond'_typ)] create_prune_node ~branch:false ~negate_cond:true
res_trans_case_const.instrs sil_loc Sil.Ik_switch context [(sil_eq_cond, switch_e_cond'_typ)] res_trans_case_const.instrs sil_loc
Sil.Ik_switch context
in in
(true_prune_node, false_prune_node) (true_prune_node, false_prune_node)
| _ | _
@ -1928,7 +1936,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
in in
let cond_stmt = Loops.get_cond loop_kind in let cond_stmt = Loops.get_cond loop_kind in
let trans_state_cond = {trans_state with continuation= continuation_cond; succ_nodes= []} in let trans_state_cond = {trans_state with continuation= continuation_cond; succ_nodes= []} in
let res_trans_cond = cond_trans trans_state_cond cond_stmt in let res_trans_cond = cond_trans ~negate_cond:false trans_state_cond cond_stmt in
let decl_stmt_opt = let decl_stmt_opt =
match loop_kind with match loop_kind with
| Loops.For (_, decl_stmt, _, _, _) | Loops.For (_, decl_stmt, _, _, _)

@ -49,12 +49,12 @@ module Nodes = struct
let procdesc = CContext.get_procdesc context in let procdesc = CContext.get_procdesc context in
Procdesc.create_node procdesc loc node_kind instrs Procdesc.create_node procdesc loc node_kind instrs
let create_prune_node branch e_cond instrs_cond loc ik context = let create_prune_node ~branch ~negate_cond e_cond instrs_cond loc ik context =
let e_cond', _ = let e_cond', _ =
extract_exp_from_list e_cond extract_exp_from_list e_cond
"@\nWARNING: Missing expression for Conditional operator. Need to be fixed" "@\nWARNING: Missing expression for Conditional operator. Need to be fixed"
in in
let e_cond'' = if branch then e_cond' else Exp.UnOp (Unop.LNot, e_cond', None) in let e_cond'' = if negate_cond then Exp.UnOp (Unop.LNot, e_cond', None) else e_cond' in
let instrs_cond' = instrs_cond @ [Sil.Prune (e_cond'', loc, branch, ik)] in let instrs_cond' = instrs_cond @ [Sil.Prune (e_cond'', loc, branch, ik)] in
create_node (prune_kind branch) instrs_cond' loc context create_node (prune_kind branch) instrs_cond' loc context

@ -125,8 +125,8 @@ module Nodes : sig
val is_join_node : Procdesc.Node.t -> bool val is_join_node : Procdesc.Node.t -> bool
val create_prune_node : val create_prune_node :
bool -> (Exp.t * Typ.t) list -> Sil.instr list -> Location.t -> Sil.if_kind -> CContext.t branch:bool -> negate_cond:bool -> (Exp.t * Typ.t) list -> Sil.instr list -> Location.t
-> Procdesc.Node.t -> Sil.if_kind -> CContext.t -> Procdesc.Node.t
val is_prune_node : Procdesc.Node.t -> bool val is_prune_node : Procdesc.Node.t -> bool

@ -57,15 +57,11 @@ codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_le_Ok, 3, CONDITION_ALW
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_lt_Ok, 3, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_lt_Ok, 3, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_ne_Ok, 3, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_ne_Ok, 3, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 3, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 3, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 3, CONDITION_ALWAYS_TRUE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 7, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 7, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 7, CONDITION_ALWAYS_TRUE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 11, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 11, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_not_Ok, 11, CONDITION_ALWAYS_TRUE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_or_Ok, 3, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_or_Ok, 3, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_or_Ok, 3, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_alias.c, prune_alias_or_Ok, 3, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_false_Ok, 3, CONDITION_ALWAYS_FALSE, [] codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_false_Ok, 3, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_not_Bad, 3, CONDITION_ALWAYS_FALSE, []
codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_not_Bad, 3, CONDITION_ALWAYS_TRUE, [] codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_not_Bad, 3, CONDITION_ALWAYS_TRUE, []
codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_not_Bad, 4, BUFFER_OVERRUN_L1, [ArrayDeclaration,Assignment,ArrayAccess: Offset: [1, 1] Size: [1, 1]] codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_not_Bad, 4, BUFFER_OVERRUN_L1, [ArrayDeclaration,Assignment,ArrayAccess: Offset: [1, 1] Size: [1, 1]]
codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_true_Ok, 3, CONDITION_ALWAYS_TRUE, [] codetoanalyze/c/bufferoverrun/prune_constant.c, prune_constant_true_Ok, 3, CONDITION_ALWAYS_TRUE, []

@ -1,126 +1,63 @@
/* @generated */ /* @generated */
digraph iCFG { digraph iCFG {
"test_loop.254a9d372f8f45542e409771135b9322_1" [label="1: Start test_loop\nFormals: \nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$0:int 0$?%__sil_tmpSIL_temp_conditional___n$3:int 0$?%__sil_tmpSIL_temp_conditional___n$7:int block_size:char* spec:char* \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$0,&0$?%__sil_tmpSIL_temp_conditional___n$3,&0$?%__sil_tmpSIL_temp_conditional___n$7,&block_size,&spec); [line 29, column 1]\n " color=yellow style=filled] "test_loop.254a9d372f8f45542e409771135b9322_1" [label="1: Start test_loop\nFormals: \nLocals: block_size:char* spec:char* \n DECLARE_LOCALS(&return,&block_size,&spec); [line 29, column 1]\n " color=yellow style=filled]
"test_loop.254a9d372f8f45542e409771135b9322_1" -> "test_loop.254a9d372f8f45542e409771135b9322_28" ; "test_loop.254a9d372f8f45542e409771135b9322_1" -> "test_loop.254a9d372f8f45542e409771135b9322_13" ;
"test_loop.254a9d372f8f45542e409771135b9322_2" [label="2: Exit test_loop \n " color=yellow style=filled] "test_loop.254a9d372f8f45542e409771135b9322_2" [label="2: Exit test_loop \n " color=yellow style=filled]
"test_loop.254a9d372f8f45542e409771135b9322_3" [label="3: + \n " ] "test_loop.254a9d372f8f45542e409771135b9322_3" [label="3: + \n " ]
"test_loop.254a9d372f8f45542e409771135b9322_3" -> "test_loop.254a9d372f8f45542e409771135b9322_4" ;
"test_loop.254a9d372f8f45542e409771135b9322_3" -> "test_loop.254a9d372f8f45542e409771135b9322_5" ; "test_loop.254a9d372f8f45542e409771135b9322_3" -> "test_loop.254a9d372f8f45542e409771135b9322_5" ;
"test_loop.254a9d372f8f45542e409771135b9322_3" -> "test_loop.254a9d372f8f45542e409771135b9322_6" ; "test_loop.254a9d372f8f45542e409771135b9322_4" [label="4: Prune (true branch) \n n$0=*&spec:char* [line 36, column 12]\n PRUNE(!n$0, true); [line 36, column 12]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_4" [label="4: + \n " ]
"test_loop.254a9d372f8f45542e409771135b9322_4" -> "test_loop.254a9d372f8f45542e409771135b9322_9" ; "test_loop.254a9d372f8f45542e409771135b9322_4" -> "test_loop.254a9d372f8f45542e409771135b9322_6" ;
"test_loop.254a9d372f8f45542e409771135b9322_4" -> "test_loop.254a9d372f8f45542e409771135b9322_10" ; "test_loop.254a9d372f8f45542e409771135b9322_5" [label="5: Prune (false branch) \n n$0=*&spec:char* [line 36, column 12]\n PRUNE(n$0, false); [line 36, column 12]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_5" [label="5: Prune (true branch) \n n$1=*&spec:char* [line 36, column 12]\n PRUNE(n$1, true); [line 36, column 12]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_5" -> "test_loop.254a9d372f8f45542e409771135b9322_7" ; "test_loop.254a9d372f8f45542e409771135b9322_5" -> "test_loop.254a9d372f8f45542e409771135b9322_2" ;
"test_loop.254a9d372f8f45542e409771135b9322_6" [label="6: Prune (false branch) \n n$1=*&spec:char* [line 36, column 12]\n PRUNE(!n$1, false); [line 36, column 12]\n " shape="invhouse"] "test_loop.254a9d372f8f45542e409771135b9322_6" [label="6: BinaryOperatorStmt: Assign \n n$1=_fun_getenv(\"BLOCK_SIZE\":char const *) [line 36, column 29]\n *&spec:char*=n$1 [line 36, column 22]\n n$2=*&spec:char* [line 36, column 22]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_6" -> "test_loop.254a9d372f8f45542e409771135b9322_7" ;
"test_loop.254a9d372f8f45542e409771135b9322_6" -> "test_loop.254a9d372f8f45542e409771135b9322_8" ; "test_loop.254a9d372f8f45542e409771135b9322_6" -> "test_loop.254a9d372f8f45542e409771135b9322_8" ;
"test_loop.254a9d372f8f45542e409771135b9322_7" [label="7: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:int=0 [line 36, column 11]\n " shape="box"] "test_loop.254a9d372f8f45542e409771135b9322_7" [label="7: Prune (true branch) \n PRUNE(!n$2, true); [line 36, column 22]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_7" -> "test_loop.254a9d372f8f45542e409771135b9322_4" ; "test_loop.254a9d372f8f45542e409771135b9322_7" -> "test_loop.254a9d372f8f45542e409771135b9322_9" ;
"test_loop.254a9d372f8f45542e409771135b9322_8" [label="8: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:int=1 [line 36, column 11]\n " shape="box"] "test_loop.254a9d372f8f45542e409771135b9322_8" [label="8: Prune (false branch) \n PRUNE(n$2, false); [line 36, column 22]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_8" -> "test_loop.254a9d372f8f45542e409771135b9322_4" ; "test_loop.254a9d372f8f45542e409771135b9322_8" -> "test_loop.254a9d372f8f45542e409771135b9322_2" ;
"test_loop.254a9d372f8f45542e409771135b9322_9" [label="9: Prune (true branch) \n n$2=*&0$?%__sil_tmpSIL_temp_conditional___n$0:int [line 36, column 11]\n PRUNE(n$2, true); [line 36, column 11]\n " shape="invhouse"] "test_loop.254a9d372f8f45542e409771135b9322_9" [label="9: BinaryOperatorStmt: Assign \n n$3=_fun_getenv(\"BLOCKSIZE\":char const *) [line 37, column 20]\n *&spec:char*=n$3 [line 37, column 13]\n n$4=*&spec:char* [line 37, column 13]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_9" -> "test_loop.254a9d372f8f45542e409771135b9322_12" ; "test_loop.254a9d372f8f45542e409771135b9322_9" -> "test_loop.254a9d372f8f45542e409771135b9322_10" ;
"test_loop.254a9d372f8f45542e409771135b9322_10" [label="10: Prune (false branch) \n n$2=*&0$?%__sil_tmpSIL_temp_conditional___n$0:int [line 36, column 11]\n PRUNE(!n$2, false); [line 36, column 11]\n " shape="invhouse"] "test_loop.254a9d372f8f45542e409771135b9322_9" -> "test_loop.254a9d372f8f45542e409771135b9322_11" ;
"test_loop.254a9d372f8f45542e409771135b9322_10" [label="10: Prune (true branch) \n PRUNE(!n$4, true); [line 37, column 13]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_10" -> "test_loop.254a9d372f8f45542e409771135b9322_2" ; "test_loop.254a9d372f8f45542e409771135b9322_10" -> "test_loop.254a9d372f8f45542e409771135b9322_12" ;
"test_loop.254a9d372f8f45542e409771135b9322_11" [label="11: + \n " ] "test_loop.254a9d372f8f45542e409771135b9322_11" [label="11: Prune (false branch) \n PRUNE(n$4, false); [line 37, column 13]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_11" -> "test_loop.254a9d372f8f45542e409771135b9322_17" ; "test_loop.254a9d372f8f45542e409771135b9322_11" -> "test_loop.254a9d372f8f45542e409771135b9322_2" ;
"test_loop.254a9d372f8f45542e409771135b9322_11" -> "test_loop.254a9d372f8f45542e409771135b9322_18" ; "test_loop.254a9d372f8f45542e409771135b9322_12" [label="12: BinaryOperatorStmt: Assign \n *&block_size:char*=null [line 38, column 5]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_12" [label="12: BinaryOperatorStmt: Assign \n n$4=_fun_getenv(\"BLOCK_SIZE\":char const *) [line 36, column 29]\n *&spec:char*=n$4 [line 36, column 22]\n n$5=*&spec:char* [line 36, column 22]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_12" -> "test_loop.254a9d372f8f45542e409771135b9322_13" ; "test_loop.254a9d372f8f45542e409771135b9322_12" -> "test_loop.254a9d372f8f45542e409771135b9322_3" ;
"test_loop.254a9d372f8f45542e409771135b9322_12" -> "test_loop.254a9d372f8f45542e409771135b9322_14" ; "test_loop.254a9d372f8f45542e409771135b9322_13" [label="13: BinaryOperatorStmt: Assign \n n$5=_fun_getenv(\"BLOCK\":char const *) [line 34, column 10]\n *&spec:char*=n$5 [line 34, column 3]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_13" [label="13: Prune (true branch) \n PRUNE(n$5, true); [line 36, column 22]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_13" -> "test_loop.254a9d372f8f45542e409771135b9322_15" ; "test_loop.254a9d372f8f45542e409771135b9322_13" -> "test_loop.254a9d372f8f45542e409771135b9322_3" ;
"test_loop.254a9d372f8f45542e409771135b9322_14" [label="14: Prune (false branch) \n PRUNE(!n$5, false); [line 36, column 22]\n " shape="invhouse"] "main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: block_size:char* spec:char* \n DECLARE_LOCALS(&return,&block_size,&spec); [line 42, column 1]\n " color=yellow style=filled]
"test_loop.254a9d372f8f45542e409771135b9322_14" -> "test_loop.254a9d372f8f45542e409771135b9322_16" ; "main.fad58de7366495db4650cfefac2fcd61_1" -> "main.fad58de7366495db4650cfefac2fcd61_19" ;
"test_loop.254a9d372f8f45542e409771135b9322_15" [label="15: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=0 [line 36, column 20]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_15" -> "test_loop.254a9d372f8f45542e409771135b9322_11" ;
"test_loop.254a9d372f8f45542e409771135b9322_16" [label="16: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=1 [line 36, column 20]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_16" -> "test_loop.254a9d372f8f45542e409771135b9322_11" ;
"test_loop.254a9d372f8f45542e409771135b9322_17" [label="17: Prune (true branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 36, column 20]\n PRUNE(n$6, true); [line 36, column 20]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_17" -> "test_loop.254a9d372f8f45542e409771135b9322_20" ;
"test_loop.254a9d372f8f45542e409771135b9322_18" [label="18: Prune (false branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 36, column 20]\n PRUNE(!n$6, false); [line 36, column 20]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_18" -> "test_loop.254a9d372f8f45542e409771135b9322_2" ;
"test_loop.254a9d372f8f45542e409771135b9322_19" [label="19: + \n " ]
"test_loop.254a9d372f8f45542e409771135b9322_19" -> "test_loop.254a9d372f8f45542e409771135b9322_25" ;
"test_loop.254a9d372f8f45542e409771135b9322_19" -> "test_loop.254a9d372f8f45542e409771135b9322_26" ;
"test_loop.254a9d372f8f45542e409771135b9322_20" [label="20: BinaryOperatorStmt: Assign \n n$8=_fun_getenv(\"BLOCKSIZE\":char const *) [line 37, column 20]\n *&spec:char*=n$8 [line 37, column 13]\n n$9=*&spec:char* [line 37, column 13]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_20" -> "test_loop.254a9d372f8f45542e409771135b9322_21" ;
"test_loop.254a9d372f8f45542e409771135b9322_20" -> "test_loop.254a9d372f8f45542e409771135b9322_22" ;
"test_loop.254a9d372f8f45542e409771135b9322_21" [label="21: Prune (true branch) \n PRUNE(n$9, true); [line 37, column 13]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_21" -> "test_loop.254a9d372f8f45542e409771135b9322_23" ;
"test_loop.254a9d372f8f45542e409771135b9322_22" [label="22: Prune (false branch) \n PRUNE(!n$9, false); [line 37, column 13]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_22" -> "test_loop.254a9d372f8f45542e409771135b9322_24" ;
"test_loop.254a9d372f8f45542e409771135b9322_23" [label="23: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=0 [line 37, column 11]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_23" -> "test_loop.254a9d372f8f45542e409771135b9322_19" ;
"test_loop.254a9d372f8f45542e409771135b9322_24" [label="24: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=1 [line 37, column 11]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_24" -> "test_loop.254a9d372f8f45542e409771135b9322_19" ;
"test_loop.254a9d372f8f45542e409771135b9322_25" [label="25: Prune (true branch) \n n$10=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 37, column 11]\n PRUNE(n$10, true); [line 37, column 11]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_25" -> "test_loop.254a9d372f8f45542e409771135b9322_27" ;
"test_loop.254a9d372f8f45542e409771135b9322_26" [label="26: Prune (false branch) \n n$10=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 37, column 11]\n PRUNE(!n$10, false); [line 37, column 11]\n " shape="invhouse"]
"test_loop.254a9d372f8f45542e409771135b9322_26" -> "test_loop.254a9d372f8f45542e409771135b9322_2" ;
"test_loop.254a9d372f8f45542e409771135b9322_27" [label="27: BinaryOperatorStmt: Assign \n *&block_size:char*=null [line 38, column 5]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_27" -> "test_loop.254a9d372f8f45542e409771135b9322_3" ;
"test_loop.254a9d372f8f45542e409771135b9322_28" [label="28: BinaryOperatorStmt: Assign \n n$11=_fun_getenv(\"BLOCK\":char const *) [line 34, column 10]\n *&spec:char*=n$11 [line 34, column 3]\n " shape="box"]
"test_loop.254a9d372f8f45542e409771135b9322_28" -> "test_loop.254a9d372f8f45542e409771135b9322_3" ;
"main.fad58de7366495db4650cfefac2fcd61_1" [label="1: Start main\nFormals: \nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$0:int 0$?%__sil_tmpSIL_temp_conditional___n$3:int 0$?%__sil_tmpSIL_temp_conditional___n$7:int block_size:char* spec:char* \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$0,&0$?%__sil_tmpSIL_temp_conditional___n$3,&0$?%__sil_tmpSIL_temp_conditional___n$7,&block_size,&spec); [line 42, column 1]\n " color=yellow style=filled]
"main.fad58de7366495db4650cfefac2fcd61_1" -> "main.fad58de7366495db4650cfefac2fcd61_34" ;
"main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n " color=yellow style=filled] "main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n " color=yellow style=filled]
@ -132,133 +69,70 @@ digraph iCFG {
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;
"main.fad58de7366495db4650cfefac2fcd61_5" [label="5: + \n " ] "main.fad58de7366495db4650cfefac2fcd61_5" [label="5: Prune (true branch) \n n$0=*&spec:char* [line 49, column 8]\n PRUNE(!n$0, true); [line 49, column 8]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_10" ; "main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_7" ;
"main.fad58de7366495db4650cfefac2fcd61_5" -> "main.fad58de7366495db4650cfefac2fcd61_11" ; "main.fad58de7366495db4650cfefac2fcd61_6" [label="6: Prune (false branch) \n n$0=*&spec:char* [line 49, column 8]\n PRUNE(n$0, false); [line 49, column 8]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_6" [label="6: Prune (true branch) \n n$1=*&spec:char* [line 49, column 8]\n PRUNE(n$1, true); [line 49, column 8]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_6" -> "main.fad58de7366495db4650cfefac2fcd61_8" ; "main.fad58de7366495db4650cfefac2fcd61_6" -> "main.fad58de7366495db4650cfefac2fcd61_15" ;
"main.fad58de7366495db4650cfefac2fcd61_7" [label="7: Prune (false branch) \n n$1=*&spec:char* [line 49, column 8]\n PRUNE(!n$1, false); [line 49, column 8]\n " shape="invhouse"] "main.fad58de7366495db4650cfefac2fcd61_7" [label="7: BinaryOperatorStmt: Assign \n n$1=_fun_getenv(\"BLOCK_SIZE\":char const *) [line 49, column 25]\n *&spec:char*=n$1 [line 49, column 18]\n n$2=*&spec:char* [line 49, column 18]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_8" ;
"main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_9" ; "main.fad58de7366495db4650cfefac2fcd61_7" -> "main.fad58de7366495db4650cfefac2fcd61_9" ;
"main.fad58de7366495db4650cfefac2fcd61_8" [label="8: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:int=0 [line 49, column 7]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_8" [label="8: Prune (true branch) \n PRUNE(!n$2, true); [line 49, column 18]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_8" -> "main.fad58de7366495db4650cfefac2fcd61_5" ; "main.fad58de7366495db4650cfefac2fcd61_8" -> "main.fad58de7366495db4650cfefac2fcd61_10" ;
"main.fad58de7366495db4650cfefac2fcd61_9" [label="9: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:int=1 [line 49, column 7]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_9" [label="9: Prune (false branch) \n PRUNE(n$2, false); [line 49, column 18]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_9" -> "main.fad58de7366495db4650cfefac2fcd61_5" ; "main.fad58de7366495db4650cfefac2fcd61_9" -> "main.fad58de7366495db4650cfefac2fcd61_15" ;
"main.fad58de7366495db4650cfefac2fcd61_10" [label="10: Prune (true branch) \n n$2=*&0$?%__sil_tmpSIL_temp_conditional___n$0:int [line 49, column 7]\n PRUNE(n$2, true); [line 49, column 7]\n " shape="invhouse"] "main.fad58de7366495db4650cfefac2fcd61_10" [label="10: BinaryOperatorStmt: Assign \n n$3=_fun_getenv(\"BLOCKSIZE\":char const *) [line 49, column 59]\n *&spec:char*=n$3 [line 49, column 52]\n n$4=*&spec:char* [line 49, column 52]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_10" -> "main.fad58de7366495db4650cfefac2fcd61_13" ; "main.fad58de7366495db4650cfefac2fcd61_10" -> "main.fad58de7366495db4650cfefac2fcd61_11" ;
"main.fad58de7366495db4650cfefac2fcd61_11" [label="11: Prune (false branch) \n n$2=*&0$?%__sil_tmpSIL_temp_conditional___n$0:int [line 49, column 7]\n PRUNE(!n$2, false); [line 49, column 7]\n " shape="invhouse"] "main.fad58de7366495db4650cfefac2fcd61_10" -> "main.fad58de7366495db4650cfefac2fcd61_12" ;
"main.fad58de7366495db4650cfefac2fcd61_11" [label="11: Prune (true branch) \n PRUNE(!n$4, true); [line 49, column 52]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_11" -> "main.fad58de7366495db4650cfefac2fcd61_30" ; "main.fad58de7366495db4650cfefac2fcd61_11" -> "main.fad58de7366495db4650cfefac2fcd61_13" ;
"main.fad58de7366495db4650cfefac2fcd61_12" [label="12: + \n " ] "main.fad58de7366495db4650cfefac2fcd61_12" [label="12: Prune (false branch) \n PRUNE(n$4, false); [line 49, column 52]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_12" -> "main.fad58de7366495db4650cfefac2fcd61_18" ; "main.fad58de7366495db4650cfefac2fcd61_12" -> "main.fad58de7366495db4650cfefac2fcd61_15" ;
"main.fad58de7366495db4650cfefac2fcd61_12" -> "main.fad58de7366495db4650cfefac2fcd61_19" ; "main.fad58de7366495db4650cfefac2fcd61_13" [label="13: BinaryOperatorStmt: Assign \n *&block_size:char*=null [line 50, column 5]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_13" [label="13: BinaryOperatorStmt: Assign \n n$4=_fun_getenv(\"BLOCK_SIZE\":char const *) [line 49, column 25]\n *&spec:char*=n$4 [line 49, column 18]\n n$5=*&spec:char* [line 49, column 18]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_13" -> "main.fad58de7366495db4650cfefac2fcd61_14" ; "main.fad58de7366495db4650cfefac2fcd61_13" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
"main.fad58de7366495db4650cfefac2fcd61_13" -> "main.fad58de7366495db4650cfefac2fcd61_15" ; "main.fad58de7366495db4650cfefac2fcd61_14" [label="14: + \n " ]
"main.fad58de7366495db4650cfefac2fcd61_14" [label="14: Prune (true branch) \n PRUNE(n$5, true); [line 49, column 18]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_14" -> "main.fad58de7366495db4650cfefac2fcd61_16" ; "main.fad58de7366495db4650cfefac2fcd61_14" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
"main.fad58de7366495db4650cfefac2fcd61_15" [label="15: Prune (false branch) \n PRUNE(!n$5, false); [line 49, column 18]\n " shape="invhouse"] "main.fad58de7366495db4650cfefac2fcd61_15" [label="15: BinaryOperatorStmt: EQ \n n$5=*&spec:char* [line 52, column 10]\n n$6=*n$5:char [line 52, column 9]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_15" -> "main.fad58de7366495db4650cfefac2fcd61_16" ;
"main.fad58de7366495db4650cfefac2fcd61_15" -> "main.fad58de7366495db4650cfefac2fcd61_17" ; "main.fad58de7366495db4650cfefac2fcd61_15" -> "main.fad58de7366495db4650cfefac2fcd61_17" ;
"main.fad58de7366495db4650cfefac2fcd61_16" [label="16: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=0 [line 49, column 16]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_16" [label="16: Prune (true branch) \n PRUNE((n$6 == 39), true); [line 52, column 9]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_16" -> "main.fad58de7366495db4650cfefac2fcd61_12" ;
"main.fad58de7366495db4650cfefac2fcd61_17" [label="17: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=1 [line 49, column 16]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_17" -> "main.fad58de7366495db4650cfefac2fcd61_12" ;
"main.fad58de7366495db4650cfefac2fcd61_18" [label="18: Prune (true branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 49, column 16]\n PRUNE(n$6, true); [line 49, column 16]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_18" -> "main.fad58de7366495db4650cfefac2fcd61_21" ;
"main.fad58de7366495db4650cfefac2fcd61_19" [label="19: Prune (false branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 49, column 16]\n PRUNE(!n$6, false); [line 49, column 16]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_19" -> "main.fad58de7366495db4650cfefac2fcd61_30" ;
"main.fad58de7366495db4650cfefac2fcd61_20" [label="20: + \n " ]
"main.fad58de7366495db4650cfefac2fcd61_20" -> "main.fad58de7366495db4650cfefac2fcd61_26" ;
"main.fad58de7366495db4650cfefac2fcd61_20" -> "main.fad58de7366495db4650cfefac2fcd61_27" ;
"main.fad58de7366495db4650cfefac2fcd61_21" [label="21: BinaryOperatorStmt: Assign \n n$8=_fun_getenv(\"BLOCKSIZE\":char const *) [line 49, column 59]\n *&spec:char*=n$8 [line 49, column 52]\n n$9=*&spec:char* [line 49, column 52]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_21" -> "main.fad58de7366495db4650cfefac2fcd61_22" ; "main.fad58de7366495db4650cfefac2fcd61_16" -> "main.fad58de7366495db4650cfefac2fcd61_18" ;
"main.fad58de7366495db4650cfefac2fcd61_21" -> "main.fad58de7366495db4650cfefac2fcd61_23" ; "main.fad58de7366495db4650cfefac2fcd61_17" [label="17: Prune (false branch) \n PRUNE(!(n$6 == 39), false); [line 52, column 9]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_22" [label="22: Prune (true branch) \n PRUNE(n$9, true); [line 49, column 52]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_22" -> "main.fad58de7366495db4650cfefac2fcd61_24" ; "main.fad58de7366495db4650cfefac2fcd61_17" -> "main.fad58de7366495db4650cfefac2fcd61_14" ;
"main.fad58de7366495db4650cfefac2fcd61_23" [label="23: Prune (false branch) \n PRUNE(!n$9, false); [line 49, column 52]\n " shape="invhouse"] "main.fad58de7366495db4650cfefac2fcd61_18" [label="18: BinaryOperatorStmt: Assign \n *&block_size:char*=null [line 53, column 7]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_23" -> "main.fad58de7366495db4650cfefac2fcd61_25" ; "main.fad58de7366495db4650cfefac2fcd61_18" -> "main.fad58de7366495db4650cfefac2fcd61_14" ;
"main.fad58de7366495db4650cfefac2fcd61_24" [label="24: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=0 [line 49, column 50]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_19" [label="19: BinaryOperatorStmt: Assign \n n$7=_fun_getenv(\"BLOCK\":char const *) [line 47, column 10]\n *&spec:char*=n$7 [line 47, column 3]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_24" -> "main.fad58de7366495db4650cfefac2fcd61_20" ; "main.fad58de7366495db4650cfefac2fcd61_19" -> "main.fad58de7366495db4650cfefac2fcd61_5" ;
"main.fad58de7366495db4650cfefac2fcd61_25" [label="25: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=1 [line 49, column 50]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_19" -> "main.fad58de7366495db4650cfefac2fcd61_6" ;
"main.fad58de7366495db4650cfefac2fcd61_25" -> "main.fad58de7366495db4650cfefac2fcd61_20" ;
"main.fad58de7366495db4650cfefac2fcd61_26" [label="26: Prune (true branch) \n n$10=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 49, column 50]\n PRUNE(n$10, true); [line 49, column 50]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_26" -> "main.fad58de7366495db4650cfefac2fcd61_28" ;
"main.fad58de7366495db4650cfefac2fcd61_27" [label="27: Prune (false branch) \n n$10=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 49, column 50]\n PRUNE(!n$10, false); [line 49, column 50]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_27" -> "main.fad58de7366495db4650cfefac2fcd61_30" ;
"main.fad58de7366495db4650cfefac2fcd61_28" [label="28: BinaryOperatorStmt: Assign \n *&block_size:char*=null [line 50, column 5]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_28" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
"main.fad58de7366495db4650cfefac2fcd61_29" [label="29: + \n " ]
"main.fad58de7366495db4650cfefac2fcd61_29" -> "main.fad58de7366495db4650cfefac2fcd61_4" ;
"main.fad58de7366495db4650cfefac2fcd61_30" [label="30: BinaryOperatorStmt: EQ \n n$11=*&spec:char* [line 52, column 10]\n n$12=*n$11:char [line 52, column 9]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_30" -> "main.fad58de7366495db4650cfefac2fcd61_31" ;
"main.fad58de7366495db4650cfefac2fcd61_30" -> "main.fad58de7366495db4650cfefac2fcd61_32" ;
"main.fad58de7366495db4650cfefac2fcd61_31" [label="31: Prune (true branch) \n PRUNE((n$12 == 39), true); [line 52, column 9]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_31" -> "main.fad58de7366495db4650cfefac2fcd61_33" ;
"main.fad58de7366495db4650cfefac2fcd61_32" [label="32: Prune (false branch) \n PRUNE(!(n$12 == 39), false); [line 52, column 9]\n " shape="invhouse"]
"main.fad58de7366495db4650cfefac2fcd61_32" -> "main.fad58de7366495db4650cfefac2fcd61_29" ;
"main.fad58de7366495db4650cfefac2fcd61_33" [label="33: BinaryOperatorStmt: Assign \n *&block_size:char*=null [line 53, column 7]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_33" -> "main.fad58de7366495db4650cfefac2fcd61_29" ;
"main.fad58de7366495db4650cfefac2fcd61_34" [label="34: BinaryOperatorStmt: Assign \n n$13=_fun_getenv(\"BLOCK\":char const *) [line 47, column 10]\n *&spec:char*=n$13 [line 47, column 3]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_34" -> "main.fad58de7366495db4650cfefac2fcd61_6" ;
"main.fad58de7366495db4650cfefac2fcd61_34" -> "main.fad58de7366495db4650cfefac2fcd61_7" ;
"shortcircuit_or.5845fe75b89f8af7ec1944cd207962af_1" [label="1: Start shortcircuit_or\nFormals: x:int*\nLocals: \n DECLARE_LOCALS(&return); [line 12, column 1]\n " color=yellow style=filled] "shortcircuit_or.5845fe75b89f8af7ec1944cd207962af_1" [label="1: Start shortcircuit_or\nFormals: x:int*\nLocals: \n DECLARE_LOCALS(&return); [line 12, column 1]\n " color=yellow style=filled]
@ -308,11 +182,11 @@ digraph iCFG {
"shortcircuit_or.5845fe75b89f8af7ec1944cd207962af_12" -> "shortcircuit_or.5845fe75b89f8af7ec1944cd207962af_3" ; "shortcircuit_or.5845fe75b89f8af7ec1944cd207962af_12" -> "shortcircuit_or.5845fe75b89f8af7ec1944cd207962af_3" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_1" [label="1: Start shortcircuit_and\nFormals: x:int*\nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$0:int 0$?%__sil_tmpSIL_temp_conditional___n$3:int \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$0,&0$?%__sil_tmpSIL_temp_conditional___n$3); [line 21, column 1]\n " color=yellow style=filled] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_1" [label="1: Start shortcircuit_and\nFormals: x:int*\nLocals: \n DECLARE_LOCALS(&return); [line 21, column 1]\n " color=yellow style=filled]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_1" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_1" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_6" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_1" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_6" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_1" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_7" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_2" [label="2: Exit shortcircuit_and \n " color=yellow style=filled] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_2" [label="2: Exit shortcircuit_and \n " color=yellow style=filled]
@ -324,75 +198,33 @@ digraph iCFG {
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_4" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_2" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_4" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_2" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" [label="5: + \n " ] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" [label="5: Prune (true branch) \n n$0=*&x:int* [line 22, column 8]\n PRUNE(!n$0, true); [line 22, column 8]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_10" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_7" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_11" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_6" [label="6: Prune (false branch) \n n$0=*&x:int* [line 22, column 8]\n PRUNE(n$0, false); [line 22, column 8]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_6" [label="6: Prune (true branch) \n n$1=*&x:int* [line 22, column 8]\n PRUNE(n$1, true); [line 22, column 8]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_6" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_8" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_6" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_11" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_7" [label="7: Prune (false branch) \n n$1=*&x:int* [line 22, column 8]\n PRUNE(!n$1, false); [line 22, column 8]\n " shape="invhouse"] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_7" [label="7: BinaryOperatorStmt: Assign \n n$1=_fun_getenv(\"BLOCK\":char const *) [line 22, column 19]\n *&x:int*=n$1 [line 22, column 15]\n n$2=*&x:int* [line 22, column 15]\n " shape="box"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_7" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_8" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_7" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_9" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_7" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_9" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_8" [label="8: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:int=0 [line 22, column 7]\n " shape="box"] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_8" [label="8: Prune (true branch) \n PRUNE(!n$2, true); [line 22, column 15]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_8" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_9" [label="9: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:int=1 [line 22, column 7]\n " shape="box"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_9" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_5" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_10" [label="10: Prune (true branch) \n n$2=*&0$?%__sil_tmpSIL_temp_conditional___n$0:int [line 22, column 7]\n PRUNE(n$2, true); [line 22, column 7]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_10" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_13" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_11" [label="11: Prune (false branch) \n n$2=*&0$?%__sil_tmpSIL_temp_conditional___n$0:int [line 22, column 7]\n PRUNE(!n$2, false); [line 22, column 7]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_11" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_21" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_12" [label="12: + \n " ]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_12" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_18" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_12" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_19" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_13" [label="13: BinaryOperatorStmt: Assign \n n$4=_fun_getenv(\"BLOCK\":char const *) [line 22, column 19]\n *&x:int*=n$4 [line 22, column 15]\n n$5=*&x:int* [line 22, column 15]\n " shape="box"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_13" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_14" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_13" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_15" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_14" [label="14: Prune (true branch) \n PRUNE(n$5, true); [line 22, column 15]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_14" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_16" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_15" [label="15: Prune (false branch) \n PRUNE(!n$5, false); [line 22, column 15]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_15" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_17" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_16" [label="16: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=0 [line 22, column 13]\n " shape="box"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_16" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_12" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_17" [label="17: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=1 [line 22, column 13]\n " shape="box"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_17" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_12" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_18" [label="18: Prune (true branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 22, column 13]\n PRUNE(n$6, true); [line 22, column 13]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_18" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_20" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_8" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_10" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_19" [label="19: Prune (false branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 22, column 13]\n PRUNE(!n$6, false); [line 22, column 13]\n " shape="invhouse"] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_9" [label="9: Prune (false branch) \n PRUNE(n$2, false); [line 22, column 15]\n " shape="invhouse"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_19" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_21" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_9" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_11" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_20" [label="20: BinaryOperatorStmt: Assign \n *&x:int*=17 [line 23, column 5]\n " shape="box"] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_10" [label="10: BinaryOperatorStmt: Assign \n *&x:int*=17 [line 23, column 5]\n " shape="box"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_20" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_3" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_10" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_3" ;
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_21" [label="21: BinaryOperatorStmt: Assign \n n$7=*&x:int* [line 25, column 6]\n *n$7:int=32 [line 25, column 5]\n " shape="box"] "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_11" [label="11: BinaryOperatorStmt: Assign \n n$3=*&x:int* [line 25, column 6]\n *n$3:int=32 [line 25, column 5]\n " shape="box"]
"shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_21" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_3" ; "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_11" -> "shortcircuit_and.10f9635d805ff3bd29dfc80b8f8d12da_3" ;
} }

@ -103,10 +103,10 @@ digraph iCFG {
"g1.0120a4f9196a5f9eb9f523f31f914da7_11" -> "g1.0120a4f9196a5f9eb9f523f31f914da7_8" ; "g1.0120a4f9196a5f9eb9f523f31f914da7_11" -> "g1.0120a4f9196a5f9eb9f523f31f914da7_8" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_1" [label="1: Start g2\nFormals: \nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$1:int 0$?%__sil_tmpSIL_temp_conditional___n$4:int a:int \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$1,&0$?%__sil_tmpSIL_temp_conditional___n$4,&a); [line 37, column 1]\n " color=yellow style=filled] "g2.e1c80488853d86ab9d6decfe30d8930f_1" [label="1: Start g2\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 37, column 1]\n " color=yellow style=filled]
"g2.e1c80488853d86ab9d6decfe30d8930f_1" -> "g2.e1c80488853d86ab9d6decfe30d8930f_34" ; "g2.e1c80488853d86ab9d6decfe30d8930f_1" -> "g2.e1c80488853d86ab9d6decfe30d8930f_24" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_2" [label="2: Exit g2 \n " color=yellow style=filled] "g2.e1c80488853d86ab9d6decfe30d8930f_2" [label="2: Exit g2 \n " color=yellow style=filled]
@ -158,92 +158,50 @@ digraph iCFG {
"g2.e1c80488853d86ab9d6decfe30d8930f_14" [label="14: Skip GotoLabel_stepB \n " color="gray"] "g2.e1c80488853d86ab9d6decfe30d8930f_14" [label="14: Skip GotoLabel_stepB \n " color="gray"]
"g2.e1c80488853d86ab9d6decfe30d8930f_14" -> "g2.e1c80488853d86ab9d6decfe30d8930f_33" ; "g2.e1c80488853d86ab9d6decfe30d8930f_14" -> "g2.e1c80488853d86ab9d6decfe30d8930f_23" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_15" [label="15: + \n " ] "g2.e1c80488853d86ab9d6decfe30d8930f_15" [label="15: + \n " ]
"g2.e1c80488853d86ab9d6decfe30d8930f_15" -> "g2.e1c80488853d86ab9d6decfe30d8930f_11" ; "g2.e1c80488853d86ab9d6decfe30d8930f_15" -> "g2.e1c80488853d86ab9d6decfe30d8930f_11" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_16" [label="16: + \n " ] "g2.e1c80488853d86ab9d6decfe30d8930f_16" [label="16: Call _fun_getValue \n n$1=_fun_getValue() [line 44, column 8]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_16" -> "g2.e1c80488853d86ab9d6decfe30d8930f_22" ; "g2.e1c80488853d86ab9d6decfe30d8930f_16" -> "g2.e1c80488853d86ab9d6decfe30d8930f_17" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_16" -> "g2.e1c80488853d86ab9d6decfe30d8930f_23" ; "g2.e1c80488853d86ab9d6decfe30d8930f_16" -> "g2.e1c80488853d86ab9d6decfe30d8930f_18" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_17" [label="17: Call _fun_getValue \n n$2=_fun_getValue() [line 44, column 8]\n " shape="box"] "g2.e1c80488853d86ab9d6decfe30d8930f_17" [label="17: Prune (true branch) \n PRUNE(!n$1, true); [line 44, column 8]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_17" -> "g2.e1c80488853d86ab9d6decfe30d8930f_18" ; "g2.e1c80488853d86ab9d6decfe30d8930f_17" -> "g2.e1c80488853d86ab9d6decfe30d8930f_8" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_17" -> "g2.e1c80488853d86ab9d6decfe30d8930f_19" ; "g2.e1c80488853d86ab9d6decfe30d8930f_18" [label="18: Prune (false branch) \n PRUNE(n$1, false); [line 44, column 8]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_18" [label="18: Prune (true branch) \n PRUNE(n$2, true); [line 44, column 8]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_18" -> "g2.e1c80488853d86ab9d6decfe30d8930f_20" ; "g2.e1c80488853d86ab9d6decfe30d8930f_18" -> "g2.e1c80488853d86ab9d6decfe30d8930f_15" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_19" [label="19: Prune (false branch) \n PRUNE(!n$2, false); [line 44, column 8]\n " shape="invhouse"] "g2.e1c80488853d86ab9d6decfe30d8930f_19" [label="19: + \n " ]
"g2.e1c80488853d86ab9d6decfe30d8930f_19" -> "g2.e1c80488853d86ab9d6decfe30d8930f_21" ; "g2.e1c80488853d86ab9d6decfe30d8930f_19" -> "g2.e1c80488853d86ab9d6decfe30d8930f_16" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_20" [label="20: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$1:int=0 [line 44, column 7]\n " shape="box"] "g2.e1c80488853d86ab9d6decfe30d8930f_20" [label="20: Call _fun_getValue \n n$2=_fun_getValue() [line 42, column 8]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_20" -> "g2.e1c80488853d86ab9d6decfe30d8930f_16" ; "g2.e1c80488853d86ab9d6decfe30d8930f_20" -> "g2.e1c80488853d86ab9d6decfe30d8930f_21" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_21" [label="21: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$1:int=1 [line 44, column 7]\n " shape="box"] "g2.e1c80488853d86ab9d6decfe30d8930f_20" -> "g2.e1c80488853d86ab9d6decfe30d8930f_22" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_21" [label="21: Prune (true branch) \n PRUNE(!n$2, true); [line 42, column 8]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_21" -> "g2.e1c80488853d86ab9d6decfe30d8930f_16" ; "g2.e1c80488853d86ab9d6decfe30d8930f_21" -> "g2.e1c80488853d86ab9d6decfe30d8930f_5" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_22" [label="22: Prune (true branch) \n n$3=*&0$?%__sil_tmpSIL_temp_conditional___n$1:int [line 44, column 7]\n PRUNE(n$3, true); [line 44, column 7]\n " shape="invhouse"] "g2.e1c80488853d86ab9d6decfe30d8930f_22" [label="22: Prune (false branch) \n PRUNE(n$2, false); [line 42, column 8]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_22" -> "g2.e1c80488853d86ab9d6decfe30d8930f_8" ; "g2.e1c80488853d86ab9d6decfe30d8930f_22" -> "g2.e1c80488853d86ab9d6decfe30d8930f_19" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_23" [label="23: Prune (false branch) \n n$3=*&0$?%__sil_tmpSIL_temp_conditional___n$1:int [line 44, column 7]\n PRUNE(!n$3, false); [line 44, column 7]\n " shape="invhouse"] "g2.e1c80488853d86ab9d6decfe30d8930f_23" [label="23: BinaryOperatorStmt: Assign \n *&a:int=1 [line 40, column 3]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_23" -> "g2.e1c80488853d86ab9d6decfe30d8930f_15" ; "g2.e1c80488853d86ab9d6decfe30d8930f_23" -> "g2.e1c80488853d86ab9d6decfe30d8930f_20" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_24" [label="24: + \n " ] "g2.e1c80488853d86ab9d6decfe30d8930f_24" [label="24: DeclStmt \n *&a:int=0 [line 38, column 3]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_24" -> "g2.e1c80488853d86ab9d6decfe30d8930f_17" ; "g2.e1c80488853d86ab9d6decfe30d8930f_24" -> "g2.e1c80488853d86ab9d6decfe30d8930f_14" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_25" [label="25: + \n " ] "g3.8a9fd7dfda802921fdc4079f9a528ce8_1" [label="1: Start g3\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 59, column 1]\n " color=yellow style=filled]
"g2.e1c80488853d86ab9d6decfe30d8930f_25" -> "g2.e1c80488853d86ab9d6decfe30d8930f_31" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_25" -> "g2.e1c80488853d86ab9d6decfe30d8930f_32" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_26" [label="26: Call _fun_getValue \n n$5=_fun_getValue() [line 42, column 8]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_26" -> "g2.e1c80488853d86ab9d6decfe30d8930f_27" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_26" -> "g2.e1c80488853d86ab9d6decfe30d8930f_28" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_27" [label="27: Prune (true branch) \n PRUNE(n$5, true); [line 42, column 8]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_27" -> "g2.e1c80488853d86ab9d6decfe30d8930f_29" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_28" [label="28: Prune (false branch) \n PRUNE(!n$5, false); [line 42, column 8]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_28" -> "g2.e1c80488853d86ab9d6decfe30d8930f_30" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_29" [label="29: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$4:int=0 [line 42, column 7]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_29" -> "g2.e1c80488853d86ab9d6decfe30d8930f_25" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_30" [label="30: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$4:int=1 [line 42, column 7]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_30" -> "g2.e1c80488853d86ab9d6decfe30d8930f_25" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_31" [label="31: Prune (true branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$4:int [line 42, column 7]\n PRUNE(n$6, true); [line 42, column 7]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_31" -> "g2.e1c80488853d86ab9d6decfe30d8930f_5" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_32" [label="32: Prune (false branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$4:int [line 42, column 7]\n PRUNE(!n$6, false); [line 42, column 7]\n " shape="invhouse"]
"g2.e1c80488853d86ab9d6decfe30d8930f_32" -> "g2.e1c80488853d86ab9d6decfe30d8930f_24" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_33" [label="33: BinaryOperatorStmt: Assign \n *&a:int=1 [line 40, column 3]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_33" -> "g2.e1c80488853d86ab9d6decfe30d8930f_26" ;
"g2.e1c80488853d86ab9d6decfe30d8930f_34" [label="34: DeclStmt \n *&a:int=0 [line 38, column 3]\n " shape="box"]
"g2.e1c80488853d86ab9d6decfe30d8930f_34" -> "g2.e1c80488853d86ab9d6decfe30d8930f_14" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_1" [label="1: Start g3\nFormals: \nLocals: a:int 0$?%__sil_tmpSIL_temp_conditional___n$4:int 0$?%__sil_tmpSIL_temp_conditional___n$7:int \n DECLARE_LOCALS(&return,&a,&0$?%__sil_tmpSIL_temp_conditional___n$4,&0$?%__sil_tmpSIL_temp_conditional___n$7); [line 59, column 1]\n " color=yellow style=filled]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_1" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_15" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_1" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_15" ;
@ -302,88 +260,46 @@ digraph iCFG {
"g3.8a9fd7dfda802921fdc4079f9a528ce8_15" [label="15: Skip GotoLabel_stepB \n " color="gray"] "g3.8a9fd7dfda802921fdc4079f9a528ce8_15" [label="15: Skip GotoLabel_stepB \n " color="gray"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_15" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_34" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_15" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_24" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_16" [label="16: + \n " ] "g3.8a9fd7dfda802921fdc4079f9a528ce8_16" [label="16: + \n " ]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_16" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_12" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_16" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_12" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_17" [label="17: + \n " ] "g3.8a9fd7dfda802921fdc4079f9a528ce8_17" [label="17: Call _fun_getValue \n n$4=_fun_getValue() [line 65, column 8]\n " shape="box"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_17" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_23" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_17" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_24" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_18" [label="18: Call _fun_getValue \n n$5=_fun_getValue() [line 65, column 8]\n " shape="box"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_18" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_19" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_18" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_20" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_19" [label="19: Prune (true branch) \n PRUNE(n$5, true); [line 65, column 8]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_19" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_21" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_20" [label="20: Prune (false branch) \n PRUNE(!n$5, false); [line 65, column 8]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_20" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_22" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_21" [label="21: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$4:int=0 [line 65, column 7]\n " shape="box"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_21" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_17" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_22" [label="22: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$4:int=1 [line 65, column 7]\n " shape="box"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_22" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_17" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_23" [label="23: Prune (true branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$4:int [line 65, column 7]\n PRUNE(n$6, true); [line 65, column 7]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_23" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_8" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_24" [label="24: Prune (false branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$4:int [line 65, column 7]\n PRUNE(!n$6, false); [line 65, column 7]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_24" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_16" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_25" [label="25: + \n " ]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_25" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_18" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_26" [label="26: + \n " ]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_26" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_32" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_17" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_18" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_26" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_33" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_17" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_19" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_27" [label="27: Call _fun_getValue \n n$8=_fun_getValue() [line 63, column 8]\n " shape="box"] "g3.8a9fd7dfda802921fdc4079f9a528ce8_18" [label="18: Prune (true branch) \n PRUNE(!n$4, true); [line 65, column 8]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_27" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_28" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_18" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_8" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_27" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_29" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_19" [label="19: Prune (false branch) \n PRUNE(n$4, false); [line 65, column 8]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_28" [label="28: Prune (true branch) \n PRUNE(n$8, true); [line 63, column 8]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_28" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_30" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_19" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_16" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_29" [label="29: Prune (false branch) \n PRUNE(!n$8, false); [line 63, column 8]\n " shape="invhouse"] "g3.8a9fd7dfda802921fdc4079f9a528ce8_20" [label="20: + \n " ]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_29" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_31" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_20" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_17" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_30" [label="30: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=0 [line 63, column 7]\n " shape="box"] "g3.8a9fd7dfda802921fdc4079f9a528ce8_21" [label="21: Call _fun_getValue \n n$5=_fun_getValue() [line 63, column 8]\n " shape="box"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_30" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_26" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_21" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_22" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_31" [label="31: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=1 [line 63, column 7]\n " shape="box"] "g3.8a9fd7dfda802921fdc4079f9a528ce8_21" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_23" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_22" [label="22: Prune (true branch) \n PRUNE(!n$5, true); [line 63, column 8]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_31" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_26" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_22" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_5" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_32" [label="32: Prune (true branch) \n n$9=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 63, column 7]\n PRUNE(n$9, true); [line 63, column 7]\n " shape="invhouse"] "g3.8a9fd7dfda802921fdc4079f9a528ce8_23" [label="23: Prune (false branch) \n PRUNE(n$5, false); [line 63, column 8]\n " shape="invhouse"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_32" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_5" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_23" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_20" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_33" [label="33: Prune (false branch) \n n$9=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 63, column 7]\n PRUNE(!n$9, false); [line 63, column 7]\n " shape="invhouse"] "g3.8a9fd7dfda802921fdc4079f9a528ce8_24" [label="24: Call _fun_printf \n n$6=_fun_printf(\"B\\n\":char const *) [line 61, column 3]\n " shape="box"]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_33" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_25" ; "g3.8a9fd7dfda802921fdc4079f9a528ce8_24" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_21" ;
"g3.8a9fd7dfda802921fdc4079f9a528ce8_34" [label="34: Call _fun_printf \n n$10=_fun_printf(\"B\\n\":char const *) [line 61, column 3]\n " shape="box"] "g4.b0b5c8f28ad7834e70a958a8882fa59a_1" [label="1: Start g4\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 81, column 1]\n " color=yellow style=filled]
"g3.8a9fd7dfda802921fdc4079f9a528ce8_34" -> "g3.8a9fd7dfda802921fdc4079f9a528ce8_27" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_1" [label="1: Start g4\nFormals: \nLocals: a:int 0$?%__sil_tmpSIL_temp_conditional___n$4:int 0$?%__sil_tmpSIL_temp_conditional___n$7:int \n DECLARE_LOCALS(&return,&a,&0$?%__sil_tmpSIL_temp_conditional___n$4,&0$?%__sil_tmpSIL_temp_conditional___n$7); [line 81, column 1]\n " color=yellow style=filled]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_1" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_14" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_1" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_14" ;
@ -438,88 +354,46 @@ digraph iCFG {
"g4.b0b5c8f28ad7834e70a958a8882fa59a_14" [label="14: Skip GotoLabel_stepB \n " color="gray"] "g4.b0b5c8f28ad7834e70a958a8882fa59a_14" [label="14: Skip GotoLabel_stepB \n " color="gray"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_14" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_33" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_14" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_23" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_15" [label="15: + \n " ] "g4.b0b5c8f28ad7834e70a958a8882fa59a_15" [label="15: + \n " ]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_15" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_11" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_15" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_11" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_16" [label="16: + \n " ] "g4.b0b5c8f28ad7834e70a958a8882fa59a_16" [label="16: Call _fun_getValue \n n$4=_fun_getValue() [line 87, column 8]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_16" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_22" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_16" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_23" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_17" [label="17: Call _fun_getValue \n n$5=_fun_getValue() [line 87, column 8]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_17" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_18" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_17" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_19" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_18" [label="18: Prune (true branch) \n PRUNE(n$5, true); [line 87, column 8]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_18" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_20" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_19" [label="19: Prune (false branch) \n PRUNE(!n$5, false); [line 87, column 8]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_19" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_21" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_20" [label="20: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$4:int=0 [line 87, column 7]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_20" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_16" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_21" [label="21: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$4:int=1 [line 87, column 7]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_21" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_16" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_16" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_17" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_22" [label="22: Prune (true branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$4:int [line 87, column 7]\n PRUNE(n$6, true); [line 87, column 7]\n " shape="invhouse"] "g4.b0b5c8f28ad7834e70a958a8882fa59a_16" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_18" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_17" [label="17: Prune (true branch) \n PRUNE(!n$4, true); [line 87, column 8]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_22" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_8" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_17" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_8" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_23" [label="23: Prune (false branch) \n n$6=*&0$?%__sil_tmpSIL_temp_conditional___n$4:int [line 87, column 7]\n PRUNE(!n$6, false); [line 87, column 7]\n " shape="invhouse"] "g4.b0b5c8f28ad7834e70a958a8882fa59a_18" [label="18: Prune (false branch) \n PRUNE(n$4, false); [line 87, column 8]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_23" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_15" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_18" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_15" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_24" [label="24: + \n " ] "g4.b0b5c8f28ad7834e70a958a8882fa59a_19" [label="19: + \n " ]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_24" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_17" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_19" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_16" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_25" [label="25: + \n " ] "g4.b0b5c8f28ad7834e70a958a8882fa59a_20" [label="20: Call _fun_getValue \n n$5=_fun_getValue() [line 85, column 8]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_25" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_31" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_20" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_21" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_25" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_32" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_20" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_22" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_26" [label="26: Call _fun_getValue \n n$8=_fun_getValue() [line 85, column 8]\n " shape="box"] "g4.b0b5c8f28ad7834e70a958a8882fa59a_21" [label="21: Prune (true branch) \n PRUNE(!n$5, true); [line 85, column 8]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_26" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_27" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_21" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_5" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_26" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_28" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_22" [label="22: Prune (false branch) \n PRUNE(n$5, false); [line 85, column 8]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_27" [label="27: Prune (true branch) \n PRUNE(n$8, true); [line 85, column 8]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_27" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_29" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_22" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_19" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_28" [label="28: Prune (false branch) \n PRUNE(!n$8, false); [line 85, column 8]\n " shape="invhouse"] "g4.b0b5c8f28ad7834e70a958a8882fa59a_23" [label="23: Call _fun_printf \n n$6=_fun_printf(\"B\\n\":char const *) [line 83, column 3]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_28" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_30" ; "g4.b0b5c8f28ad7834e70a958a8882fa59a_23" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_20" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_29" [label="29: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=0 [line 85, column 7]\n " shape="box"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_1" [label="1: Start g5\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 102, column 1]\n " color=yellow style=filled]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_29" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_25" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_30" [label="30: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$7:int=1 [line 85, column 7]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_30" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_25" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_31" [label="31: Prune (true branch) \n n$9=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 85, column 7]\n PRUNE(n$9, true); [line 85, column 7]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_31" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_5" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_32" [label="32: Prune (false branch) \n n$9=*&0$?%__sil_tmpSIL_temp_conditional___n$7:int [line 85, column 7]\n PRUNE(!n$9, false); [line 85, column 7]\n " shape="invhouse"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_32" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_24" ;
"g4.b0b5c8f28ad7834e70a958a8882fa59a_33" [label="33: Call _fun_printf \n n$10=_fun_printf(\"B\\n\":char const *) [line 83, column 3]\n " shape="box"]
"g4.b0b5c8f28ad7834e70a958a8882fa59a_33" -> "g4.b0b5c8f28ad7834e70a958a8882fa59a_26" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_1" [label="1: Start g5\nFormals: \nLocals: a:int 0$?%__sil_tmpSIL_temp_conditional___n$3:int 0$?%__sil_tmpSIL_temp_conditional___n$6:int \n DECLARE_LOCALS(&return,&a,&0$?%__sil_tmpSIL_temp_conditional___n$3,&0$?%__sil_tmpSIL_temp_conditional___n$6); [line 102, column 1]\n " color=yellow style=filled]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_1" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_13" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_1" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_13" ;
@ -570,88 +444,46 @@ digraph iCFG {
"g5.37c965a8d6d7bec292c7b11ff315d9ea_13" [label="13: Skip GotoLabel_stepB \n " color="gray"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_13" [label="13: Skip GotoLabel_stepB \n " color="gray"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_13" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_32" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_13" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_22" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_14" [label="14: + \n " ] "g5.37c965a8d6d7bec292c7b11ff315d9ea_14" [label="14: + \n " ]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_14" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_10" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_14" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_10" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_15" [label="15: + \n " ] "g5.37c965a8d6d7bec292c7b11ff315d9ea_15" [label="15: Call _fun_getValue \n n$3=_fun_getValue() [line 108, column 8]\n " shape="box"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_15" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_21" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_15" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_22" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_16" [label="16: Call _fun_getValue \n n$4=_fun_getValue() [line 108, column 8]\n " shape="box"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_16" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_17" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_16" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_18" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_17" [label="17: Prune (true branch) \n PRUNE(n$4, true); [line 108, column 8]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_17" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_19" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_18" [label="18: Prune (false branch) \n PRUNE(!n$4, false); [line 108, column 8]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_18" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_20" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_19" [label="19: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=0 [line 108, column 7]\n " shape="box"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_19" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_15" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_20" [label="20: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=1 [line 108, column 7]\n " shape="box"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_20" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_15" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_21" [label="21: Prune (true branch) \n n$5=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 108, column 7]\n PRUNE(n$5, true); [line 108, column 7]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_21" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_3" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_22" [label="22: Prune (false branch) \n n$5=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 108, column 7]\n PRUNE(!n$5, false); [line 108, column 7]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_22" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_14" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_23" [label="23: + \n " ]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_23" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_16" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_24" [label="24: + \n " ]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_24" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_30" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_15" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_16" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_24" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_31" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_15" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_17" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_25" [label="25: Call _fun_getValue \n n$7=_fun_getValue() [line 106, column 8]\n " shape="box"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_16" [label="16: Prune (true branch) \n PRUNE(!n$3, true); [line 108, column 8]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_25" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_26" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_16" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_3" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_25" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_27" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_17" [label="17: Prune (false branch) \n PRUNE(n$3, false); [line 108, column 8]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_26" [label="26: Prune (true branch) \n PRUNE(n$7, true); [line 106, column 8]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_26" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_28" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_17" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_14" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_27" [label="27: Prune (false branch) \n PRUNE(!n$7, false); [line 106, column 8]\n " shape="invhouse"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_18" [label="18: + \n " ]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_27" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_29" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_18" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_15" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_28" [label="28: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$6:int=0 [line 106, column 7]\n " shape="box"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_19" [label="19: Call _fun_getValue \n n$4=_fun_getValue() [line 106, column 8]\n " shape="box"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_28" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_24" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_19" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_20" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_29" [label="29: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$6:int=1 [line 106, column 7]\n " shape="box"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_19" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_21" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_20" [label="20: Prune (true branch) \n PRUNE(!n$4, true); [line 106, column 8]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_29" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_24" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_20" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_5" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_30" [label="30: Prune (true branch) \n n$8=*&0$?%__sil_tmpSIL_temp_conditional___n$6:int [line 106, column 7]\n PRUNE(n$8, true); [line 106, column 7]\n " shape="invhouse"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_21" [label="21: Prune (false branch) \n PRUNE(n$4, false); [line 106, column 8]\n " shape="invhouse"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_30" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_5" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_21" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_18" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_31" [label="31: Prune (false branch) \n n$8=*&0$?%__sil_tmpSIL_temp_conditional___n$6:int [line 106, column 7]\n PRUNE(!n$8, false); [line 106, column 7]\n " shape="invhouse"] "g5.37c965a8d6d7bec292c7b11ff315d9ea_22" [label="22: Call _fun_printf \n n$5=_fun_printf(\"B\\n\":char const *) [line 104, column 3]\n " shape="box"]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_31" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_23" ; "g5.37c965a8d6d7bec292c7b11ff315d9ea_22" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_19" ;
"g5.37c965a8d6d7bec292c7b11ff315d9ea_32" [label="32: Call _fun_printf \n n$9=_fun_printf(\"B\\n\":char const *) [line 104, column 3]\n " shape="box"] "g6.4a4314ef967aad20a9e7c423bc16e39c_1" [label="1: Start g6\nFormals: \nLocals: a:int \n DECLARE_LOCALS(&return,&a); [line 124, column 1]\n " color=yellow style=filled]
"g5.37c965a8d6d7bec292c7b11ff315d9ea_32" -> "g5.37c965a8d6d7bec292c7b11ff315d9ea_25" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_1" [label="1: Start g6\nFormals: \nLocals: a:int 0$?%__sil_tmpSIL_temp_conditional___n$3:int 0$?%__sil_tmpSIL_temp_conditional___n$6:int \n DECLARE_LOCALS(&return,&a,&0$?%__sil_tmpSIL_temp_conditional___n$3,&0$?%__sil_tmpSIL_temp_conditional___n$6); [line 124, column 1]\n " color=yellow style=filled]
"g6.4a4314ef967aad20a9e7c423bc16e39c_1" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_13" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_1" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_13" ;
@ -702,87 +534,45 @@ digraph iCFG {
"g6.4a4314ef967aad20a9e7c423bc16e39c_13" [label="13: Skip GotoLabel_stepB \n " color="gray"] "g6.4a4314ef967aad20a9e7c423bc16e39c_13" [label="13: Skip GotoLabel_stepB \n " color="gray"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_13" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_32" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_13" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_22" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_14" [label="14: + \n " ] "g6.4a4314ef967aad20a9e7c423bc16e39c_14" [label="14: + \n " ]
"g6.4a4314ef967aad20a9e7c423bc16e39c_14" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_10" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_14" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_10" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_15" [label="15: + \n " ] "g6.4a4314ef967aad20a9e7c423bc16e39c_15" [label="15: Call _fun_getValue \n n$3=_fun_getValue() [line 130, column 8]\n " shape="box"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_15" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_21" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_15" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_22" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_16" [label="16: Call _fun_getValue \n n$4=_fun_getValue() [line 130, column 8]\n " shape="box"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_16" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_17" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_16" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_18" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_17" [label="17: Prune (true branch) \n PRUNE(n$4, true); [line 130, column 8]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_17" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_19" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_18" [label="18: Prune (false branch) \n PRUNE(!n$4, false); [line 130, column 8]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_18" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_20" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_19" [label="19: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=0 [line 130, column 7]\n " shape="box"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_19" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_15" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_20" [label="20: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$3:int=1 [line 130, column 7]\n " shape="box"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_20" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_15" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_21" [label="21: Prune (true branch) \n n$5=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 130, column 7]\n PRUNE(n$5, true); [line 130, column 7]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_21" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_3" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_22" [label="22: Prune (false branch) \n n$5=*&0$?%__sil_tmpSIL_temp_conditional___n$3:int [line 130, column 7]\n PRUNE(!n$5, false); [line 130, column 7]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_22" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_14" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_23" [label="23: + \n " ]
"g6.4a4314ef967aad20a9e7c423bc16e39c_23" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_16" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_24" [label="24: + \n " ]
"g6.4a4314ef967aad20a9e7c423bc16e39c_24" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_30" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_24" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_31" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_25" [label="25: Call _fun_getValue \n n$7=_fun_getValue() [line 128, column 8]\n " shape="box"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_25" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_26" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_15" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_16" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_25" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_27" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_15" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_17" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_26" [label="26: Prune (true branch) \n PRUNE(n$7, true); [line 128, column 8]\n " shape="invhouse"] "g6.4a4314ef967aad20a9e7c423bc16e39c_16" [label="16: Prune (true branch) \n PRUNE(!n$3, true); [line 130, column 8]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_26" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_28" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_16" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_3" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_27" [label="27: Prune (false branch) \n PRUNE(!n$7, false); [line 128, column 8]\n " shape="invhouse"] "g6.4a4314ef967aad20a9e7c423bc16e39c_17" [label="17: Prune (false branch) \n PRUNE(n$3, false); [line 130, column 8]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_27" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_29" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_17" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_14" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_28" [label="28: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$6:int=0 [line 128, column 7]\n " shape="box"] "g6.4a4314ef967aad20a9e7c423bc16e39c_18" [label="18: + \n " ]
"g6.4a4314ef967aad20a9e7c423bc16e39c_28" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_24" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_18" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_15" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_29" [label="29: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$6:int=1 [line 128, column 7]\n " shape="box"] "g6.4a4314ef967aad20a9e7c423bc16e39c_19" [label="19: Call _fun_getValue \n n$4=_fun_getValue() [line 128, column 8]\n " shape="box"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_29" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_24" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_19" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_20" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_30" [label="30: Prune (true branch) \n n$8=*&0$?%__sil_tmpSIL_temp_conditional___n$6:int [line 128, column 7]\n PRUNE(n$8, true); [line 128, column 7]\n " shape="invhouse"] "g6.4a4314ef967aad20a9e7c423bc16e39c_19" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_21" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_20" [label="20: Prune (true branch) \n PRUNE(!n$4, true); [line 128, column 8]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_30" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_5" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_20" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_5" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_31" [label="31: Prune (false branch) \n n$8=*&0$?%__sil_tmpSIL_temp_conditional___n$6:int [line 128, column 7]\n PRUNE(!n$8, false); [line 128, column 7]\n " shape="invhouse"] "g6.4a4314ef967aad20a9e7c423bc16e39c_21" [label="21: Prune (false branch) \n PRUNE(n$4, false); [line 128, column 8]\n " shape="invhouse"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_31" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_23" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_21" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_18" ;
"g6.4a4314ef967aad20a9e7c423bc16e39c_32" [label="32: Call _fun_printf \n n$9=_fun_printf(\"B\\n\":char const *) [line 126, column 3]\n " shape="box"] "g6.4a4314ef967aad20a9e7c423bc16e39c_22" [label="22: Call _fun_printf \n n$5=_fun_printf(\"B\\n\":char const *) [line 126, column 3]\n " shape="box"]
"g6.4a4314ef967aad20a9e7c423bc16e39c_32" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_25" ; "g6.4a4314ef967aad20a9e7c423bc16e39c_22" -> "g6.4a4314ef967aad20a9e7c423bc16e39c_19" ;
"g7.727bb92f57c3951d11695a52c92c2b0c_1" [label="1: Start g7\nFormals: \nLocals: v:int k:int j:int i:int \n DECLARE_LOCALS(&return,&v,&k,&j,&i); [line 146, column 1]\n " color=yellow style=filled] "g7.727bb92f57c3951d11695a52c92c2b0c_1" [label="1: Start g7\nFormals: \nLocals: v:int k:int j:int i:int \n DECLARE_LOCALS(&return,&v,&k,&j,&i); [line 146, column 1]\n " color=yellow style=filled]

@ -11,11 +11,9 @@ codetoanalyze/cpp/bufferoverrun/repro1.cpp, am_Good_FP, 5, BUFFER_OVERRUN_L5, [C
codetoanalyze/cpp/bufferoverrun/simple_vector.cpp, instantiate_my_vector_oob_Ok, 3, BUFFER_OVERRUN_L1, [Call,Assignment,Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [42, 42] Size: [42, 42] @ codetoanalyze/cpp/bufferoverrun/simple_vector.cpp:21:23 by call `my_vector_oob_Bad()` ] codetoanalyze/cpp/bufferoverrun/simple_vector.cpp, instantiate_my_vector_oob_Ok, 3, BUFFER_OVERRUN_L1, [Call,Assignment,Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [42, 42] Size: [42, 42] @ codetoanalyze/cpp/bufferoverrun/simple_vector.cpp:21:23 by call `my_vector_oob_Bad()` ]
codetoanalyze/cpp/bufferoverrun/simple_vector.cpp, my_vector_oob_Bad, 2, BUFFER_OVERRUN_L2, [Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [max(0, s$4), s$5] Size: [max(0, s$4), s$5] @ codetoanalyze/cpp/bufferoverrun/simple_vector.cpp:21:23 by call `int_vector_access_at()` ] codetoanalyze/cpp/bufferoverrun/simple_vector.cpp, my_vector_oob_Bad, 2, BUFFER_OVERRUN_L2, [Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [max(0, s$4), s$5] Size: [max(0, s$4), s$5] @ codetoanalyze/cpp/bufferoverrun/simple_vector.cpp:21:23 by call `int_vector_access_at()` ]
codetoanalyze/cpp/bufferoverrun/trivial.cpp, trivial, 2, BUFFER_OVERRUN_L1, [ArrayDeclaration,ArrayAccess: Offset: [10, 10] Size: [10, 10]] codetoanalyze/cpp/bufferoverrun/trivial.cpp, trivial, 2, BUFFER_OVERRUN_L1, [ArrayDeclaration,ArrayAccess: Offset: [10, 10] Size: [10, 10]]
codetoanalyze/cpp/bufferoverrun/vector.cpp, call_safe_access4_Good_FP, 2, BUFFER_OVERRUN_L1, [Call,Call,Assignment,Call,Call,Assignment,Return,Call,Assignment,Call,Call,Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [0, 0] Size: [0, 0]]
codetoanalyze/cpp/bufferoverrun/vector.cpp, just_test_model_FP, 16, BUFFER_OVERRUN_L5, [Call,ArrayAccess: Offset: [-oo, +oo] Size: [0, +oo]] codetoanalyze/cpp/bufferoverrun/vector.cpp, just_test_model_FP, 16, BUFFER_OVERRUN_L5, [Call,ArrayAccess: Offset: [-oo, +oo] Size: [0, +oo]]
codetoanalyze/cpp/bufferoverrun/vector.cpp, just_test_model_FP, 18, BUFFER_OVERRUN_L3, [Call,Call,Call,Assignment,Call,Call,Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [1, 1] Size: [0, +oo]] codetoanalyze/cpp/bufferoverrun/vector.cpp, just_test_model_FP, 18, BUFFER_OVERRUN_L3, [Call,Call,Call,Assignment,Call,Call,Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [1, 1] Size: [0, +oo]]
codetoanalyze/cpp/bufferoverrun/vector.cpp, out_of_bound_Bad, 2, BUFFER_OVERRUN_L2, [Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [max(0, s$12), s$13] Size: [max(0, s$12), s$13]] codetoanalyze/cpp/bufferoverrun/vector.cpp, out_of_bound_Bad, 2, BUFFER_OVERRUN_L2, [Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [max(0, s$12), s$13] Size: [max(0, s$12), s$13]]
codetoanalyze/cpp/bufferoverrun/vector.cpp, push_back_Bad, 3, BUFFER_OVERRUN_L1, [Call,Call,Assignment,Call,Assignment,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [1, 1] Size: [1, 1]] codetoanalyze/cpp/bufferoverrun/vector.cpp, push_back_Bad, 3, BUFFER_OVERRUN_L1, [Call,Call,Assignment,Call,Assignment,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [1, 1] Size: [1, 1]]
codetoanalyze/cpp/bufferoverrun/vector.cpp, reserve_Bad, 3, BUFFER_OVERRUN_L1, [Call,Call,Assignment,Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [0, 0] Size: [0, 0]] codetoanalyze/cpp/bufferoverrun/vector.cpp, reserve_Bad, 3, BUFFER_OVERRUN_L1, [Call,Call,Assignment,Call,Call,Call,ArrayDeclaration,Assignment,ArrayAccess: Offset: [0, 0] Size: [0, 0]]
codetoanalyze/cpp/bufferoverrun/vector.cpp, safe_access3_Good, 2, CONDITION_ALWAYS_FALSE, [] codetoanalyze/cpp/bufferoverrun/vector.cpp, safe_access3_Good, 2, CONDITION_ALWAYS_FALSE, []
codetoanalyze/cpp/bufferoverrun/vector.cpp, safe_access3_Good, 2, CONDITION_ALWAYS_TRUE, []

@ -117,7 +117,7 @@ void safe_access4(std::vector<int> v) {
} }
} }
void call_safe_access4_Good_FP() { void call_safe_access4_Good() {
std::vector<int> v; std::vector<int> v;
safe_access4(v); safe_access4(v);
} }

@ -21,25 +21,25 @@ codetoanalyze/cpp/errors/memory_leaks/array_leak.cpp, no_leak, 2, DANGLING_POINT
codetoanalyze/cpp/errors/memory_leaks/object_leak.cpp, object_leak, 0, MEMORY_LEAK, [start of procedure object_leak(),start of procedure Rectangle,return from a call to Rectangle_Rectangle,start of procedure Rectangle,return from a call to Rectangle_Rectangle] codetoanalyze/cpp/errors/memory_leaks/object_leak.cpp, object_leak, 0, MEMORY_LEAK, [start of procedure object_leak(),start of procedure Rectangle,return from a call to Rectangle_Rectangle,start of procedure Rectangle,return from a call to Rectangle_Rectangle]
codetoanalyze/cpp/errors/memory_leaks/raii_malloc.cpp, memory_leak, 0, MEMORY_LEAK, [start of procedure memory_leak()] codetoanalyze/cpp/errors/memory_leaks/raii_malloc.cpp, memory_leak, 0, MEMORY_LEAK, [start of procedure memory_leak()]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe1_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_strong_possible_npe1_bad(),Condition is true,Condition is true,Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe1_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_strong_possible_npe1_bad(),Condition is true,Condition is true,Condition is true]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe2_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_strong_possible_npe2_bad(),Condition is true,Condition is true,Condition is false,Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_strong_possible_npe2_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_strong_possible_npe2_bad(),Condition is true,Condition is true,Condition is true]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe1_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_weak_possible_npe1_bad(),Condition is true,Condition is true,Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe1_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_weak_possible_npe1_bad(),Condition is true,Condition is true,Condition is true]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe2_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_weak_possible_npe2_bad(),Condition is true,Condition is true,Condition is false,Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::compare_exchange_weak_possible_npe2_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::compare_exchange_weak_possible_npe2_bad(),Condition is true,Condition is true,Condition is true]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::exchange_possible_npe_bad, 5, NULL_DEREFERENCE, [start of procedure atomic_test::exchange_possible_npe_bad(),Condition is true,Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::exchange_possible_npe_bad, 5, NULL_DEREFERENCE, [start of procedure atomic_test::exchange_possible_npe_bad(),Condition is true,Condition is true]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::is_zero_possible_npe_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::is_zero_possible_npe_bad(),start of procedure A,return from a call to atomic_test::A_A,start of procedure add,return from a call to atomic_test::A_add,start of procedure sub,return from a call to atomic_test::A_sub,start of procedure is_zero,Condition is true,return from a call to atomic_test::A_is_zero,Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::is_zero_possible_npe_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::is_zero_possible_npe_bad(),start of procedure A,return from a call to atomic_test::A_A,start of procedure add,return from a call to atomic_test::A_add,start of procedure sub,return from a call to atomic_test::A_sub,start of procedure is_zero,Condition is true,return from a call to atomic_test::A_is_zero,Condition is true]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::load_store_possible_npe_bad, 5, NULL_DEREFERENCE, [start of procedure atomic_test::load_store_possible_npe_bad(),Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::load_store_possible_npe_bad, 5, NULL_DEREFERENCE, [start of procedure atomic_test::load_store_possible_npe_bad(),Condition is true]
codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::not_zero_possible_npe_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::not_zero_possible_npe_bad(),start of procedure A,return from a call to atomic_test::A_A,start of procedure sub,return from a call to atomic_test::A_sub,start of procedure sub,return from a call to atomic_test::A_sub,start of procedure is_zero,Condition is false,return from a call to atomic_test::A_is_zero,Condition is false,Condition is true] codetoanalyze/cpp/errors/models/atomic.cpp, atomic_test::not_zero_possible_npe_bad, 6, NULL_DEREFERENCE, [start of procedure atomic_test::not_zero_possible_npe_bad(),start of procedure A,return from a call to atomic_test::A_A,start of procedure sub,return from a call to atomic_test::A_sub,start of procedure sub,return from a call to atomic_test::A_sub,start of procedure is_zero,Condition is false,return from a call to atomic_test::A_is_zero,Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, operator_eq_bad, 4, NULL_DEREFERENCE, [start of procedure operator_eq_bad(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, operator_eq_bad, 4, NULL_DEREFERENCE, [start of procedure operator_eq_bad(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, operator_ge_bad, 4, NULL_DEREFERENCE, [start of procedure operator_ge_bad(),start of procedure operator>=(),start of procedure operator<(),Condition is false,Condition is false,Condition is false,return from a call to operator<,Condition is false,return from a call to operator>=,Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, operator_ge_bad, 4, NULL_DEREFERENCE, [start of procedure operator_ge_bad(),start of procedure operator>=(),start of procedure operator<(),Condition is false,Condition is false,Condition is false,return from a call to operator<,Condition is false,return from a call to operator>=,Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, operator_gt_bad, 4, NULL_DEREFERENCE, [start of procedure operator_gt_bad(),start of procedure operator>(),start of procedure operator<(),Condition is false,Condition is false,Condition is true,return from a call to operator<,return from a call to operator>,Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, operator_gt_bad, 4, NULL_DEREFERENCE, [start of procedure operator_gt_bad(),start of procedure operator>(),start of procedure operator<(),Condition is false,Condition is false,Condition is true,return from a call to operator<,return from a call to operator>,Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, operator_le_bad, 4, NULL_DEREFERENCE, [start of procedure operator_le_bad(),start of procedure operator<=(),start of procedure operator<(),Condition is false,Condition is false,Condition is false,return from a call to operator<,Condition is false,return from a call to operator<=,Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, operator_le_bad, 4, NULL_DEREFERENCE, [start of procedure operator_le_bad(),start of procedure operator<=(),start of procedure operator<(),Condition is false,Condition is false,Condition is false,return from a call to operator<,Condition is false,return from a call to operator<=,Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, operator_lt_bad, 4, NULL_DEREFERENCE, [start of procedure operator_lt_bad(),start of procedure operator<(),Condition is false,Condition is false,Condition is true,return from a call to operator<,Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, operator_lt_bad, 4, NULL_DEREFERENCE, [start of procedure operator_lt_bad(),start of procedure operator<(),Condition is false,Condition is false,Condition is true,return from a call to operator<,Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, operator_neq_bad, 4, NULL_DEREFERENCE, [start of procedure operator_neq_bad(),start of procedure operator!=(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Condition is true,return from a call to operator!=,Condition is false,Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, operator_neq_bad, 4, NULL_DEREFERENCE, [start of procedure operator_neq_bad(),start of procedure operator!=(),start of procedure operator==(),Condition is true,Condition is true,return from a call to operator==,Condition is true,return from a call to operator!=,Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, std_equal_to_bad, 4, NULL_DEREFERENCE, [start of procedure std_equal_to_bad(),Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, std_equal_to_bad, 4, NULL_DEREFERENCE, [start of procedure std_equal_to_bad(),Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_bad, 4, NULL_DEREFERENCE, [start of procedure std_greater_bad(),Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_bad, 4, NULL_DEREFERENCE, [start of procedure std_greater_bad(),Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_equal_bad, 4, NULL_DEREFERENCE, [start of procedure std_greater_equal_bad(),Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, std_greater_equal_bad, 4, NULL_DEREFERENCE, [start of procedure std_greater_equal_bad(),Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, std_less_bad, 4, NULL_DEREFERENCE, [start of procedure std_less_bad(),Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, std_less_bad, 4, NULL_DEREFERENCE, [start of procedure std_less_bad(),Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, std_less_equal_bad, 4, NULL_DEREFERENCE, [start of procedure std_less_equal_bad(),Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, std_less_equal_bad, 4, NULL_DEREFERENCE, [start of procedure std_less_equal_bad(),Condition is true]
codetoanalyze/cpp/errors/models/cmp.cpp, std_not_equal_to_bad, 4, NULL_DEREFERENCE, [start of procedure std_not_equal_to_bad(),Condition is false,Condition is true] codetoanalyze/cpp/errors/models/cmp.cpp, std_not_equal_to_bad, 4, NULL_DEREFERENCE, [start of procedure std_not_equal_to_bad(),Condition is true]
codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO, [start of procedure move::div0_moved_from(),start of procedure X,return from a call to move::X_X,start of procedure X,return from a call to move::X_X] codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO, [start of procedure move::div0_moved_from(),start of procedure X,return from a call to move::X_X,start of procedure X,return from a call to move::X_X]
codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO, [start of procedure move::div0_moved_to(),start of procedure X,return from a call to move::X_X,start of procedure X,return from a call to move::X_X] codetoanalyze/cpp/errors/models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO, [start of procedure move::div0_moved_to(),start of procedure X,return from a call to move::X_X,start of procedure X,return from a call to move::X_X]
codetoanalyze/cpp/errors/models/pair.cpp, pair::deref_pair_null0_bad, 3, NULL_DEREFERENCE, [start of procedure pair::deref_pair_null0_bad(),start of procedure pair::pairOfZeroNull(),return from a call to pair::pairOfZeroNull] codetoanalyze/cpp/errors/models/pair.cpp, pair::deref_pair_null0_bad, 3, NULL_DEREFERENCE, [start of procedure pair::deref_pair_null0_bad(),start of procedure pair::pairOfZeroNull(),return from a call to pair::pairOfZeroNull]
@ -64,10 +64,10 @@ codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_method_der
codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_ok_field_deref, 4, UNINITIALIZED_VALUE, [start of procedure boxed_ptr::smart_ptr_ok_field_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr_SmartPtr,start of procedure X,return from a call to boxed_ptr::X_X,start of procedure get,return from a call to boxed_ptr::SmartPtr_get] codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_ok_field_deref, 4, UNINITIALIZED_VALUE, [start of procedure boxed_ptr::smart_ptr_ok_field_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr_SmartPtr,start of procedure X,return from a call to boxed_ptr::X_X,start of procedure get,return from a call to boxed_ptr::SmartPtr_get]
codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, NULL_DEREFERENCE, [start of procedure boxed_ptr::smart_ptr_result_method_null_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr_SmartPtr,start of procedure X,return from a call to boxed_ptr::X_X,start of procedure get,return from a call to boxed_ptr::SmartPtr_get,start of procedure getNull,return from a call to boxed_ptr::X_getNull] codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, NULL_DEREFERENCE, [start of procedure boxed_ptr::smart_ptr_result_method_null_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr_SmartPtr,start of procedure X,return from a call to boxed_ptr::X_X,start of procedure get,return from a call to boxed_ptr::SmartPtr_get,start of procedure getNull,return from a call to boxed_ptr::X_getNull]
codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_ok_deref, 4, UNINITIALIZED_VALUE, [start of procedure boxed_ptr::smart_ptr_result_method_ok_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr_SmartPtr,start of procedure X,return from a call to boxed_ptr::X_X,start of procedure get,return from a call to boxed_ptr::SmartPtr_get,start of procedure getPtr,return from a call to boxed_ptr::X_getPtr] codetoanalyze/cpp/errors/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_ok_deref, 4, UNINITIALIZED_VALUE, [start of procedure boxed_ptr::smart_ptr_result_method_ok_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr_SmartPtr,start of procedure X,return from a call to boxed_ptr::X_X,start of procedure get,return from a call to boxed_ptr::SmartPtr_get,start of procedure getPtr,return from a call to boxed_ptr::X_getPtr]
codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is false,return from a call to cancellation_test::is_size_zero,Condition is false,Condition is true] codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is false,return from a call to cancellation_test::is_size_zero,Condition is true]
codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is false,return from a call to cancellation_test::is_size_zero,Condition is false,Condition is true] codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is false,return from a call to cancellation_test::is_size_zero,Condition is true]
codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Condition is false,Condition is true] codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Condition is true]
codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Condition is false,Condition is true] codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_nonzero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Condition is true]
codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_zero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is true,return from a call to cancellation_test::is_size_zero,Condition is true] codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_zero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is true,return from a call to cancellation_test::is_size_zero,Condition is true]
codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_zero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is true,return from a call to cancellation_test::is_size_zero,Condition is true] codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_zero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test_begin,start of procedure end,return from a call to cancellation_test::Test_end,Condition is true,return from a call to cancellation_test::is_size_zero,Condition is true]
codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_zero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Condition is true] codetoanalyze/cpp/errors/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter2_bad, 4, NULL_DEREFERENCE, [start of procedure cancellation_test::size_zero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter_TestIter,return from a call to cancellation_test::Test_end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Condition is true]
@ -104,7 +104,7 @@ codetoanalyze/cpp/errors/smart_ptr/const_volatile_type.cpp, test_volatile3, 3, N
codetoanalyze/cpp/errors/smart_ptr/const_volatile_type.cpp, test_volatile4, 2, NULL_DEREFERENCE, [start of procedure test_volatile4()] codetoanalyze/cpp/errors/smart_ptr/const_volatile_type.cpp, test_volatile4, 2, NULL_DEREFERENCE, [start of procedure test_volatile4()]
codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::Person_Person, 1, MEMORY_LEAK, [start of procedure Person] codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::Person_Person, 1, MEMORY_LEAK, [start of procedure Person]
codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_crash, 4, NULL_DEREFERENCE, [start of procedure deref_after_mode_example::deref_after_move_crash(),Skipping Person: function or method not found,start of procedure move_age,return from a call to deref_after_mode_example::Person_move_age,start of procedure access_age] codetoanalyze/cpp/errors/smart_ptr/deref_after_move_example.cpp, deref_after_mode_example::deref_after_move_crash, 4, NULL_DEREFERENCE, [start of procedure deref_after_mode_example::deref_after_move_crash(),Skipping Person: function or method not found,start of procedure move_age,return from a call to deref_after_mode_example::Person_move_age,start of procedure access_age]
codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::aliasing_member_null_bad, 4, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::aliasing_member_null_bad(),start of procedure shared_ptr_constructors::aliasing_construct_from_internal(),start of procedure shared_ptr_constructors::internal_null_def(),Skipping shared_ptr_constructors::external_def(): function or method not found,return from a call to shared_ptr_constructors::internal_null_def,Condition is true,Condition is false,return from a call to shared_ptr_constructors::aliasing_construct_from_internal] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::aliasing_member_null_bad, 4, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::aliasing_member_null_bad(),start of procedure shared_ptr_constructors::aliasing_construct_from_internal(),start of procedure shared_ptr_constructors::internal_null_def(),Skipping shared_ptr_constructors::external_def(): function or method not found,return from a call to shared_ptr_constructors::internal_null_def,Condition is false,return from a call to shared_ptr_constructors::aliasing_construct_from_internal]
codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_null_f1_deref, 6, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::get_from_base1_null_f1_deref(),start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,start of procedure shared_ptr_constructors::getFromBase1(),return from a call to shared_ptr_constructors::getFromBase1] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_null_f1_deref, 6, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::get_from_base1_null_f1_deref(),start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,start of procedure shared_ptr_constructors::getFromBase1(),return from a call to shared_ptr_constructors::getFromBase1]
codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_nullptr_deref, 0, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::get_from_base1_nullptr_deref(),start of procedure shared_ptr_constructors::getFromBase1(),return from a call to shared_ptr_constructors::getFromBase1] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base1_nullptr_deref, 0, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::get_from_base1_nullptr_deref(),start of procedure shared_ptr_constructors::getFromBase1(),return from a call to shared_ptr_constructors::getFromBase1]
codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_null_f1_deref, 6, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::get_from_base2_null_f1_deref(),start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,start of procedure shared_ptr_constructors::getFromBase2(),return from a call to shared_ptr_constructors::getFromBase2] codetoanalyze/cpp/errors/smart_ptr/shared_ptr_constructors.cpp, shared_ptr_constructors::get_from_base2_null_f1_deref, 6, NULL_DEREFERENCE, [start of procedure shared_ptr_constructors::get_from_base2_null_f1_deref(),start of procedure Base,return from a call to shared_ptr_constructors::Base_Base,start of procedure shared_ptr_constructors::getFromBase2(),return from a call to shared_ptr_constructors::getFromBase2]
@ -161,15 +161,15 @@ codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_
codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_null_deref, 3, NULL_DEREFERENCE, [start of procedure unique_ptr::unique_ptr_move_null_deref()] codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_null_deref, 3, NULL_DEREFERENCE, [start of procedure unique_ptr::unique_ptr_move_null_deref()]
codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_ok_deref, 3, MEMORY_LEAK, [start of procedure unique_ptr::unique_ptr_move_ok_deref()] codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_ok_deref, 3, MEMORY_LEAK, [start of procedure unique_ptr::unique_ptr_move_ok_deref()]
codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_ok_deref, 3, UNINITIALIZED_VALUE, [start of procedure unique_ptr::unique_ptr_move_ok_deref()] codetoanalyze/cpp/errors/smart_ptr/unique_ptr_deref.cpp, unique_ptr::unique_ptr_move_ok_deref, 3, UNINITIALIZED_VALUE, [start of procedure unique_ptr::unique_ptr_move_ok_deref()]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedBaseAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedBaseAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedBaseAssign(),return from a call to weak_ptr_constructors::fromSharedBaseAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedBaseAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedBaseAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedBaseAssign(),return from a call to weak_ptr_constructors::fromSharedBaseAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedBaseConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedBaseConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedBaseConstr(),return from a call to weak_ptr_constructors::fromSharedBaseConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedBaseConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedBaseConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedBaseConstr(),return from a call to weak_ptr_constructors::fromSharedBaseConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedDerivedAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedDerivedAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedDerivedAssign(),return from a call to weak_ptr_constructors::fromSharedDerivedAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedDerivedAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedDerivedAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedDerivedAssign(),return from a call to weak_ptr_constructors::fromSharedDerivedAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedDerivedConstr2_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedDerivedConstr2_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedDerivedConstr2(),return from a call to weak_ptr_constructors::fromSharedDerivedConstr2,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedDerivedConstr2_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedDerivedConstr2_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedDerivedConstr2(),return from a call to weak_ptr_constructors::fromSharedDerivedConstr2,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedDerivedConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedDerivedConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedDerivedConstr(),return from a call to weak_ptr_constructors::fromSharedDerivedConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromSharedDerivedConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromSharedDerivedConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromSharedDerivedConstr(),return from a call to weak_ptr_constructors::fromSharedDerivedConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakBaseAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakBaseAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakBaseAssign(),return from a call to weak_ptr_constructors::fromWeakBaseAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakBaseAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakBaseAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakBaseAssign(),return from a call to weak_ptr_constructors::fromWeakBaseAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakBaseConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakBaseConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakBaseConstr(),return from a call to weak_ptr_constructors::fromWeakBaseConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakBaseConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakBaseConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Base,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakBaseConstr(),return from a call to weak_ptr_constructors::fromWeakBaseConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakDerivedAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakDerivedAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakDerivedAssign(),return from a call to weak_ptr_constructors::fromWeakDerivedAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakDerivedAssign_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakDerivedAssign_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakDerivedAssign(),return from a call to weak_ptr_constructors::fromWeakDerivedAssign,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakDerivedConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakDerivedConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakDerivedConstr(),return from a call to weak_ptr_constructors::fromWeakDerivedConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is true,Condition is false,return from a call to weak_ptr_derefs::safeGet] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_derefs::safeGetFromWeakDerivedConstr_bad, 4, NULL_DEREFERENCE, [start of procedure weak_ptr_derefs::safeGetFromWeakDerivedConstr_bad(),Skipping std::make_shared<weak_ptr_constructors::Derived,_int_*>(): function or method not found,start of procedure weak_ptr_constructors::fromWeakDerivedConstr(),return from a call to weak_ptr_constructors::fromWeakDerivedConstr,start of procedure weak_ptr_derefs::safeGet(),Condition is false,return from a call to weak_ptr_derefs::safeGet]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_observers::empty_weak_lock_returns_null_bad, 3, NULL_DEREFERENCE, [start of procedure weak_ptr_observers::empty_weak_lock_returns_null_bad()] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_observers::empty_weak_lock_returns_null_bad, 3, NULL_DEREFERENCE, [start of procedure weak_ptr_observers::empty_weak_lock_returns_null_bad()]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_observers::expired_after_reset_bad, 5, expired after weak_ptr reset is true, [start of procedure weak_ptr_observers::expired_after_reset_bad(),Condition is true,return from a call to weak_ptr_observers::expired_after_reset_bad] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_observers::expired_after_reset_bad, 5, expired after weak_ptr reset is true, [start of procedure weak_ptr_observers::expired_after_reset_bad(),Condition is true,return from a call to weak_ptr_observers::expired_after_reset_bad]
codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_observers::expired_after_swap_bad, 6, expired after weak_ptr swap with empty is true, [start of procedure weak_ptr_observers::expired_after_swap_bad(),Condition is true,return from a call to weak_ptr_observers::expired_after_swap_bad] codetoanalyze/cpp/errors/smart_ptr/weak_ptr.cpp, weak_ptr_observers::expired_after_swap_bad, 6, expired after weak_ptr swap with empty is true, [start of procedure weak_ptr_observers::expired_after_swap_bad(),Condition is true,return from a call to weak_ptr_observers::expired_after_swap_bad]
@ -240,8 +240,8 @@ codetoanalyze/cpp/errors/vector/empty_access.cpp, vector_as_param_clear, 3, EMPT
codetoanalyze/cpp/errors/vector/empty_access.cpp, vector_as_param_empty, 2, EMPTY_VECTOR_ACCESS, [start of procedure vector_as_param_empty(),start of procedure vector_param_access(),return from a call to vector_param_access] codetoanalyze/cpp/errors/vector/empty_access.cpp, vector_as_param_empty, 2, EMPTY_VECTOR_ACCESS, [start of procedure vector_as_param_empty(),start of procedure vector_param_access(),return from a call to vector_param_access]
codetoanalyze/cpp/errors/vector/iterator_access.cpp, iterator_access::possible_npe, 4, NULL_DEREFERENCE, [start of procedure iterator_access::possible_npe(),Condition is true,Condition is true,Condition is true] codetoanalyze/cpp/errors/vector/iterator_access.cpp, iterator_access::possible_npe, 4, NULL_DEREFERENCE, [start of procedure iterator_access::possible_npe(),Condition is true,Condition is true,Condition is true]
codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::empty_deref1_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::empty_deref1_bad(),start of procedure iterator_compare::is_empty(),return from a call to iterator_compare::is_empty,Condition is true] codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::empty_deref1_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::empty_deref1_bad(),start of procedure iterator_compare::is_empty(),return from a call to iterator_compare::is_empty,Condition is true]
codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::empty_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::empty_deref2_bad(),start of procedure iterator_compare::not_empty(),return from a call to iterator_compare::not_empty,Condition is false,Condition is true] codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::empty_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::empty_deref2_bad(),start of procedure iterator_compare::not_empty(),return from a call to iterator_compare::not_empty,Condition is true]
codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::not_empty_deref1_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::not_empty_deref1_bad(),Skipping __infer_skip_function(): function or method not found,start of procedure iterator_compare::is_empty(),return from a call to iterator_compare::is_empty,Condition is false,Condition is true] codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::not_empty_deref1_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::not_empty_deref1_bad(),Skipping __infer_skip_function(): function or method not found,start of procedure iterator_compare::is_empty(),return from a call to iterator_compare::is_empty,Condition is true]
codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::not_empty_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::not_empty_deref2_bad(),Skipping __infer_skip_function(): function or method not found,start of procedure iterator_compare::not_empty(),return from a call to iterator_compare::not_empty,Condition is true] codetoanalyze/cpp/errors/vector/iterator_cmp.cpp, iterator_compare::not_empty_deref2_bad, 4, NULL_DEREFERENCE, [start of procedure iterator_compare::not_empty_deref2_bad(),Skipping __infer_skip_function(): function or method not found,start of procedure iterator_compare::not_empty(),return from a call to iterator_compare::not_empty,Condition is true]
codetoanalyze/cpp/errors/vector/loop.cpp, non_empty_vector_loop_bad, 4, NULL_DEREFERENCE, [start of procedure non_empty_vector_loop_bad(),Condition is true] codetoanalyze/cpp/errors/vector/loop.cpp, non_empty_vector_loop_bad, 4, NULL_DEREFERENCE, [start of procedure non_empty_vector_loop_bad(),Condition is true]
codetoanalyze/cpp/shared/attributes/annotate.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg2_null_deref()] codetoanalyze/cpp/shared/attributes/annotate.cpp, derefFirstArg2_null_deref, 2, NULL_DEREFERENCE, [start of procedure derefFirstArg2_null_deref()]

Loading…
Cancel
Save