[destructors] Destroy fields after continue.

Summary: Destroying local variables that are out of scope after `continue`.

Reviewed By: jberdine

Differential Revision: D5804120

fbshipit-source-id: 638cff5
master
Daiva Naudziuniene 7 years ago committed by Facebook Github Bot
parent b740533945
commit e78dc91f34

@ -335,13 +335,6 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
let call_instr = Sil.Call (ret_id', function_sil, params, sil_loc, call_flags) in
{empty_res_trans with instrs= [call_instr]; exps= ret_exps; initd_exps}
let continueStmt_trans trans_state =
match trans_state.continuation with
| Some bn
-> {empty_res_trans with root_nodes= bn.continue}
| _
-> assert false
let stringLiteral_trans trans_state expr_info str =
let typ = CType_decl.get_type_from_expr_info expr_info trans_state.context.CContext.tenv in
let exp = Exp.Const (Const.Cstr str) in
@ -2926,6 +2919,16 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
| _
-> assert false
and continueStmt_trans trans_state stmt_info =
match trans_state.continuation with
| Some bn
-> let trans_state' = {trans_state with succ_nodes= bn.continue} in
let destr_trans_result = inject_destructors trans_state' stmt_info in
if destr_trans_result.root_nodes <> [] then destr_trans_result
else {empty_res_trans with root_nodes= bn.continue}
| _
-> assert false
(* Expect that this doesn't happen *)
and trans_into_undefined_expr trans_state expr_info =
let tenv = trans_state.context.CContext.tenv in
@ -3080,8 +3083,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
-> objCStringLiteral_trans trans_state stmt_info stmts info
| BreakStmt (stmt_info, _)
-> breakStmt_trans trans_state stmt_info
| ContinueStmt _
-> continueStmt_trans trans_state
| ContinueStmt (stmt_info, _)
-> continueStmt_trans trans_state stmt_info
| ObjCAtSynchronizedStmt (_, stmt_list)
-> objCAtSynchronizedStmt_trans trans_state stmt_list
| ObjCIndirectCopyRestoreExpr (_, stmt_list, _)

@ -322,7 +322,7 @@ module Scope = struct
handle_instructions_block new_var_map (new_vars_in_stmt @ vars_in_scope) break_count rest
in
(* TODO handle following stmts: *)
(* ContinueStmt _ | GotoStmt _ | | LabelStmt_ *)
(* GotoStmt _ | | LabelStmt_ *)
match stmt with
| CompoundStmt (stmt_info, stmt_list)
-> let vars, new_var_map =
@ -333,7 +333,7 @@ module Scope = struct
add_scope_vars_to_destroy new_var_map stmt_info vars_to_destroy
| ReturnStmt (stmt_info, _)
-> add_scope_vars_to_destroy var_map stmt_info vars_in_scope
| BreakStmt (stmt_info, _)
| BreakStmt (stmt_info, _) | ContinueStmt (stmt_info, _)
-> let vars_to_destroy = List.take vars_in_scope (List.length vars_in_scope - break_count) in
add_scope_vars_to_destroy var_map stmt_info vars_to_destroy
| WhileStmt (_, stmt_list)

@ -0,0 +1,115 @@
/*
* Copyright (c) 2017 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
namespace continue_scope {
struct X {
~X() {}
};
struct vec;
// iterator
struct iterator {
int position;
const vec* vector;
iterator(const vec* v, int pos) : position(pos), vector(v) {}
iterator operator++() {
position++;
return *this;
}
bool operator!=(const iterator& i2) { return position != i2.position; }
X operator*() const;
};
struct vec {
vec() {}
iterator begin() { return iterator(this, 0); }
iterator end() { return iterator(this, 10); }
X get(int pos) const { return _data[pos]; }
X _data[10];
};
X iterator::operator*() const { return vector->get(position); }
void test_for_range(bool b) {
vec vector;
X x1;
for (X x : vector) {
if (b) {
X x2 = x;
continue;
}
}
}
void test_for(bool b) {
vec vector;
for (iterator it = vector.begin(); it != vector.end(); ++it) {
if (b) {
X x1;
continue;
}
}
X x2;
}
void test_while1(bool a, bool b) {
X x1;
while (a) {
if (b) {
X x2;
continue;
} else {
X x4;
}
}
}
void test_do_while(bool a, bool b) {
X x1;
do {
X x2;
if (b) {
X x3;
continue;
} else {
X x4;
}
} while (a);
}
void test_while2(bool a, bool b) {
X x1;
while (a) {
X x2;
while (b) {
X x3;
continue;
}
}
}
void test_while3(bool a, bool b) {
X x1;
while (a) {
X x2;
while (b) {
continue;
}
}
X x3;
}
} // namespace continue_scope

@ -0,0 +1,577 @@
/* @generated */
digraph iCFG {
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_1" [label="1: Start continue_scope::test_while1\nFormals: a:_Bool b:_Bool\nLocals: x2:continue_scope::X x4:continue_scope::X x1:continue_scope::X \n DECLARE_LOCALS(&return,&x2,&x4,&x1); [line 68]\n " color=yellow style=filled]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_1" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_15" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_2" [label="2: Exit continue_scope::test_while1 \n " color=yellow style=filled]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 78]\n _fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 78]\n " shape="box"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_3" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_2" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_4" [label="4: + \n " ]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_4" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_5" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_4" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_6" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_5" [label="5: Prune (true branch) \n n$1=*&a:_Bool [line 70]\n PRUNE((n$1 != 0), true); [line 70]\n " shape="invhouse"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_5" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_8" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_5" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_9" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_6" [label="6: Prune (false branch) \n n$1=*&a:_Bool [line 70]\n PRUNE((n$1 == 0), false); [line 70]\n " shape="invhouse"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_6" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_3" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_7" [label="7: + \n " ]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_7" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_4" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_8" [label="8: Prune (true branch) \n n$2=*&b:_Bool [line 71]\n PRUNE((n$2 != 0), true); [line 71]\n " shape="invhouse"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_8" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_12" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_9" [label="9: Prune (false branch) \n n$2=*&b:_Bool [line 71]\n PRUNE((n$2 == 0), false); [line 71]\n " shape="invhouse"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_9" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_14" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_10" [label="10: Destruction \n _=*&x2:continue_scope::X [line 74]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 74]\n " shape="box"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_10" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_7" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_11" [label="11: Destruction \n _=*&x2:continue_scope::X [line 73]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 73]\n " shape="box"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_11" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_4" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_12" [label="12: DeclStmt \n _fun_continue_scope::X_X(&x2:continue_scope::X*) [line 72]\n " shape="box"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_12" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_11" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_13" [label="13: Destruction \n _=*&x4:continue_scope::X [line 76]\n _fun_continue_scope::X_~X(&x4:continue_scope::X*) [line 76]\n " shape="box"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_13" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_7" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_14" [label="14: DeclStmt \n _fun_continue_scope::X_X(&x4:continue_scope::X*) [line 75]\n " shape="box"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_14" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_13" ;
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_15" [label="15: DeclStmt \n _fun_continue_scope::X_X(&x1:continue_scope::X*) [line 69]\n " shape="box"]
"test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_15" -> "test_while1#continue_scope#_ZN14continue_scope11test_while1Ebb.2647248dd2590100c84021825adda28b_4" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_1" [label="1: Start continue_scope::test_do_while\nFormals: a:_Bool b:_Bool\nLocals: x3:continue_scope::X x4:continue_scope::X x2:continue_scope::X x1:continue_scope::X \n DECLARE_LOCALS(&return,&x3,&x4,&x2,&x1); [line 80]\n " color=yellow style=filled]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_1" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_17" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_2" [label="2: Exit continue_scope::test_do_while \n " color=yellow style=filled]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 91]\n _fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 91]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_3" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_2" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_4" [label="4: + \n " ]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_4" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_16" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_5" [label="5: Prune (true branch) \n n$1=*&a:_Bool [line 90]\n PRUNE((n$1 != 0), true); [line 90]\n " shape="invhouse"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_5" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_4" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_6" [label="6: Prune (false branch) \n n$1=*&a:_Bool [line 90]\n PRUNE((n$1 == 0), false); [line 90]\n " shape="invhouse"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_6" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_3" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_7" [label="7: Destruction \n _=*&x2:continue_scope::X [line 90]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 90]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_7" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_5" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_7" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_6" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_8" [label="8: + \n " ]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_8" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_7" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_9" [label="9: Prune (true branch) \n n$3=*&b:_Bool [line 84]\n PRUNE((n$3 != 0), true); [line 84]\n " shape="invhouse"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_9" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_13" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_10" [label="10: Prune (false branch) \n n$3=*&b:_Bool [line 84]\n PRUNE((n$3 == 0), false); [line 84]\n " shape="invhouse"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_10" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_15" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_11" [label="11: Destruction \n _=*&x3:continue_scope::X [line 87]\n _fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 87]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_11" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_8" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_12" [label="12: Destruction \n _=*&x3:continue_scope::X [line 86]\n _fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 86]\n _=*&x2:continue_scope::X [line 86]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 86]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_12" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_5" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_12" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_6" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_13" [label="13: DeclStmt \n _fun_continue_scope::X_X(&x3:continue_scope::X*) [line 85]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_13" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_12" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_14" [label="14: Destruction \n _=*&x4:continue_scope::X [line 89]\n _fun_continue_scope::X_~X(&x4:continue_scope::X*) [line 89]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_14" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_8" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_15" [label="15: DeclStmt \n _fun_continue_scope::X_X(&x4:continue_scope::X*) [line 88]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_15" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_14" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_16" [label="16: DeclStmt \n _fun_continue_scope::X_X(&x2:continue_scope::X*) [line 83]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_16" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_9" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_16" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_10" ;
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_17" [label="17: DeclStmt \n _fun_continue_scope::X_X(&x1:continue_scope::X*) [line 81]\n " shape="box"]
"test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_17" -> "test_do_while#continue_scope#_ZN14continue_scope13test_do_whileEbb.35f8514137abd3d6c6866635aecc2664_4" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_1" [label="1: Start continue_scope::test_while2\nFormals: a:_Bool b:_Bool\nLocals: x3:continue_scope::X x2:continue_scope::X x1:continue_scope::X \n DECLARE_LOCALS(&return,&x3,&x2,&x1); [line 93]\n " color=yellow style=filled]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_1" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_15" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_2" [label="2: Exit continue_scope::test_while2 \n " color=yellow style=filled]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 102]\n _fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 102]\n " shape="box"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_3" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_2" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_4" [label="4: + \n " ]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_4" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_5" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_4" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_6" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_5" [label="5: Prune (true branch) \n n$1=*&a:_Bool [line 95]\n PRUNE((n$1 != 0), true); [line 95]\n " shape="invhouse"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_5" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_14" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_6" [label="6: Prune (false branch) \n n$1=*&a:_Bool [line 95]\n PRUNE((n$1 == 0), false); [line 95]\n " shape="invhouse"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_6" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_3" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_7" [label="7: Destruction \n _=*&x2:continue_scope::X [line 101]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 101]\n " shape="box"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_7" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_4" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_8" [label="8: + \n " ]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_8" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_9" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_8" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_10" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_9" [label="9: Prune (true branch) \n n$3=*&b:_Bool [line 97]\n PRUNE((n$3 != 0), true); [line 97]\n " shape="invhouse"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_9" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_13" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_10" [label="10: Prune (false branch) \n n$3=*&b:_Bool [line 97]\n PRUNE((n$3 == 0), false); [line 97]\n " shape="invhouse"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_10" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_7" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_11" [label="11: Destruction \n _=*&x3:continue_scope::X [line 100]\n _fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 100]\n " shape="box"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_11" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_8" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_12" [label="12: Destruction \n _=*&x3:continue_scope::X [line 99]\n _fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 99]\n " shape="box"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_12" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_8" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_13" [label="13: DeclStmt \n _fun_continue_scope::X_X(&x3:continue_scope::X*) [line 98]\n " shape="box"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_13" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_12" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_14" [label="14: DeclStmt \n _fun_continue_scope::X_X(&x2:continue_scope::X*) [line 96]\n " shape="box"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_14" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_8" ;
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_15" [label="15: DeclStmt \n _fun_continue_scope::X_X(&x1:continue_scope::X*) [line 94]\n " shape="box"]
"test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_15" -> "test_while2#continue_scope#_ZN14continue_scope11test_while2Ebb.6e275b014a6a7ad01c7f8528e642344c_4" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_1" [label="1: Start continue_scope::test_while3\nFormals: a:_Bool b:_Bool\nLocals: x3:continue_scope::X x2:continue_scope::X x1:continue_scope::X \n DECLARE_LOCALS(&return,&x3,&x2,&x1); [line 104]\n " color=yellow style=filled]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_1" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_13" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_2" [label="2: Exit continue_scope::test_while3 \n " color=yellow style=filled]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_3" [label="3: Destruction \n _=*&x3:continue_scope::X [line 113]\n _fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 113]\n _=*&x1:continue_scope::X [line 113]\n _fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 113]\n " shape="box"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_3" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_2" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_4" [label="4: DeclStmt \n _fun_continue_scope::X_X(&x3:continue_scope::X*) [line 112]\n " shape="box"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_4" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_3" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_5" [label="5: + \n " ]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_5" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_6" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_5" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_7" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_6" [label="6: Prune (true branch) \n n$2=*&a:_Bool [line 106]\n PRUNE((n$2 != 0), true); [line 106]\n " shape="invhouse"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_6" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_12" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_7" [label="7: Prune (false branch) \n n$2=*&a:_Bool [line 106]\n PRUNE((n$2 == 0), false); [line 106]\n " shape="invhouse"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_7" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_4" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_8" [label="8: Destruction \n _=*&x2:continue_scope::X [line 111]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 111]\n " shape="box"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_8" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_5" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_9" [label="9: + \n " ]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_9" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_10" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_9" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_11" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_10" [label="10: Prune (true branch) \n n$4=*&b:_Bool [line 108]\n PRUNE((n$4 != 0), true); [line 108]\n " shape="invhouse"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_10" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_9" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_11" [label="11: Prune (false branch) \n n$4=*&b:_Bool [line 108]\n PRUNE((n$4 == 0), false); [line 108]\n " shape="invhouse"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_11" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_8" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_12" [label="12: DeclStmt \n _fun_continue_scope::X_X(&x2:continue_scope::X*) [line 107]\n " shape="box"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_12" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_9" ;
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_13" [label="13: DeclStmt \n _fun_continue_scope::X_X(&x1:continue_scope::X*) [line 105]\n " shape="box"]
"test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_13" -> "test_while3#continue_scope#_ZN14continue_scope11test_while3Ebb.8fe4f14b4af2e5252251447ae4a01693_5" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_1" [label="1: Start continue_scope::test_for_range\nFormals: b:_Bool\nLocals: __end:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$2:continue_scope::iterator __begin:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$6:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$11:continue_scope::iterator x2:continue_scope::X x:continue_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$16:continue_scope::X __range:continue_scope::vec& x1:continue_scope::X vector:continue_scope::vec \n DECLARE_LOCALS(&return,&__end,&0$?%__sil_tmpSIL_materialize_temp__n$2,&__begin,&0$?%__sil_tmpSIL_materialize_temp__n$6,&0$?%__sil_tmp__temp_return_n$11,&x2,&x,&0$?%__sil_tmpSIL_materialize_temp__n$16,&__range,&x1,&vector); [line 46]\n " color=yellow style=filled]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_1" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_20" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_2" [label="2: Exit continue_scope::test_for_range \n " color=yellow style=filled]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 55]\n _fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 55]\n _=*&vector:continue_scope::vec [line 55]\n _fun_continue_scope::vec_~vec(&vector:continue_scope::vec*) [line 55]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_3" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_2" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_4" [label="4: + \n " ]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_4" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_8" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_5" [label="5: DeclStmt \n n$3=*&__range:continue_scope::vec& [line 49]\n _=*n$3:continue_scope::vec [line 49]\n _fun_continue_scope::vec_end(n$3:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$2:continue_scope::iterator*) [line 49]\n _fun_continue_scope::iterator_iterator(&__end:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$2:continue_scope::iterator&) [line 49]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_5" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_4" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_6" [label="6: DeclStmt \n n$7=*&__range:continue_scope::vec& [line 49]\n _=*n$7:continue_scope::vec [line 49]\n _fun_continue_scope::vec_begin(n$7:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$6:continue_scope::iterator*) [line 49]\n _fun_continue_scope::iterator_iterator(&__begin:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$6:continue_scope::iterator&) [line 49]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_6" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_5" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_7" [label="7: Call _fun_continue_scope::iterator_operator++ \n _fun_continue_scope::iterator_operator++(&__begin:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$11:continue_scope::iterator*) [line 49]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_7" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_4" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_8" [label="8: Call _fun_continue_scope::iterator_operator!= \n n$12=_fun_continue_scope::iterator_operator!=(&__begin:continue_scope::iterator&,&__end:continue_scope::iterator&) [line 49]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_8" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_9" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_8" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_10" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_9" [label="9: Prune (true branch) \n PRUNE((n$12 != 0), true); [line 49]\n " shape="invhouse"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_9" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_17" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_10" [label="10: Prune (false branch) \n PRUNE((n$12 == 0), false); [line 49]\n " shape="invhouse"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_10" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_3" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_11" [label="11: + \n " ]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_11" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_7" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_12" [label="12: Prune (true branch) \n n$13=*&b:_Bool [line 50]\n PRUNE((n$13 != 0), true); [line 50]\n " shape="invhouse"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_12" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_16" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_13" [label="13: Prune (false branch) \n n$13=*&b:_Bool [line 50]\n PRUNE((n$13 == 0), false); [line 50]\n " shape="invhouse"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_13" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_11" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_14" [label="14: Destruction \n _=*&x2:continue_scope::X [line 53]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 53]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_14" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_11" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_15" [label="15: Destruction \n _=*&x2:continue_scope::X [line 52]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 52]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_15" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_7" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_16" [label="16: DeclStmt \n _fun_continue_scope::X_X(&x2:continue_scope::X*,&x:continue_scope::X&) [line 51]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_16" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_15" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_17" [label="17: DeclStmt \n _fun_continue_scope::iterator_operator*(&__begin:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$16:continue_scope::X*) [line 49]\n _fun_continue_scope::X_X(&x:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$16:continue_scope::X&) [line 49]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_17" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_12" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_17" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_13" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_18" [label="18: DeclStmt \n *&__range:continue_scope::vec&=&vector [line 49]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_18" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_6" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_19" [label="19: DeclStmt \n _fun_continue_scope::X_X(&x1:continue_scope::X*) [line 48]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_19" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_18" ;
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_20" [label="20: DeclStmt \n _fun_continue_scope::vec_vec(&vector:continue_scope::vec*) [line 47]\n " shape="box"]
"test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_20" -> "test_for_range#continue_scope#_ZN14continue_scope14test_for_rangeEb.e3d99059447506eff642a176aeb89ab7_19" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_1" [label="1: Start continue_scope::test_for\nFormals: b:_Bool\nLocals: x2:continue_scope::X it:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$2:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$6:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator x1:continue_scope::X vector:continue_scope::vec \n DECLARE_LOCALS(&return,&x2,&it,&0$?%__sil_tmpSIL_materialize_temp__n$2,&0$?%__sil_tmp__temp_return_n$6,&0$?%__sil_tmpSIL_materialize_temp__n$7,&x1,&vector); [line 57]\n " color=yellow style=filled]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_1" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_17" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_2" [label="2: Exit continue_scope::test_for \n " color=yellow style=filled]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_3" [label="3: Destruction \n _=*&x2:continue_scope::X [line 66]\n _fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 66]\n _=*&vector:continue_scope::vec [line 66]\n _fun_continue_scope::vec_~vec(&vector:continue_scope::vec*) [line 66]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_3" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_2" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_4" [label="4: DeclStmt \n _fun_continue_scope::X_X(&x2:continue_scope::X*) [line 65]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_4" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_3" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_5" [label="5: + \n " ]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_5" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_8" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_6" [label="6: DeclStmt \n _=*&vector:continue_scope::vec [line 59]\n _fun_continue_scope::vec_begin(&vector:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$2:continue_scope::iterator*) [line 59]\n _fun_continue_scope::iterator_iterator(&it:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$2:continue_scope::iterator&) [line 59]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_6" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_5" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_7" [label="7: Call _fun_continue_scope::iterator_operator++ \n _fun_continue_scope::iterator_operator++(&it:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$6:continue_scope::iterator*) [line 59]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_7" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_5" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_8" [label="8: Call _fun_continue_scope::iterator_operator!= \n _=*&vector:continue_scope::vec [line 59]\n _fun_continue_scope::vec_end(&vector:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator*) [line 59]\n n$10=_fun_continue_scope::iterator_operator!=(&it:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$7:continue_scope::iterator&) [line 59]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_8" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_9" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_8" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_10" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_9" [label="9: Prune (true branch) \n PRUNE((n$10 != 0), true); [line 59]\n " shape="invhouse"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_9" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_12" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_9" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_13" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_10" [label="10: Prune (false branch) \n PRUNE((n$10 == 0), false); [line 59]\n " shape="invhouse"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_10" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_4" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_11" [label="11: + \n " ]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_11" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_7" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_12" [label="12: Prune (true branch) \n n$11=*&b:_Bool [line 60]\n PRUNE((n$11 != 0), true); [line 60]\n " shape="invhouse"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_12" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_16" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_13" [label="13: Prune (false branch) \n n$11=*&b:_Bool [line 60]\n PRUNE((n$11 == 0), false); [line 60]\n " shape="invhouse"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_13" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_11" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_14" [label="14: Destruction \n _=*&x1:continue_scope::X [line 63]\n _fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 63]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_14" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_11" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_15" [label="15: Destruction \n _=*&x1:continue_scope::X [line 62]\n _fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 62]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_15" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_7" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_16" [label="16: DeclStmt \n _fun_continue_scope::X_X(&x1:continue_scope::X*) [line 61]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_16" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_15" ;
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_17" [label="17: DeclStmt \n _fun_continue_scope::vec_vec(&vector:continue_scope::vec*) [line 58]\n " shape="box"]
"test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_17" -> "test_for#continue_scope#_ZN14continue_scope8test_forEb.1f488ff50039e18100dde661db9984b5_6" ;
"X#X#continue_scope#{_ZN14continue_scope1XC1Ev|constexpr}.309ed1a5aaa9a7f91a1b2c965b22fb65_1" [label="1: Start continue_scope::X_X\nFormals: this:continue_scope::X*\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
"X#X#continue_scope#{_ZN14continue_scope1XC1Ev|constexpr}.309ed1a5aaa9a7f91a1b2c965b22fb65_1" -> "X#X#continue_scope#{_ZN14continue_scope1XC1Ev|constexpr}.309ed1a5aaa9a7f91a1b2c965b22fb65_2" ;
"X#X#continue_scope#{_ZN14continue_scope1XC1Ev|constexpr}.309ed1a5aaa9a7f91a1b2c965b22fb65_2" [label="2: Exit continue_scope::X_X \n " color=yellow style=filled]
"~X#X#continue_scope#(_ZN14continue_scope1XD0Ev).4072450acbc3373059f5ebe403a65b9b_1" [label="1: Start continue_scope::X_~X\nFormals: this:continue_scope::X*\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
"~X#X#continue_scope#(_ZN14continue_scope1XD0Ev).4072450acbc3373059f5ebe403a65b9b_1" -> "~X#X#continue_scope#(_ZN14continue_scope1XD0Ev).4072450acbc3373059f5ebe403a65b9b_2" ;
"~X#X#continue_scope#(_ZN14continue_scope1XD0Ev).4072450acbc3373059f5ebe403a65b9b_2" [label="2: Exit continue_scope::X_~X \n " color=yellow style=filled]
"X#X#continue_scope#{_ZN14continue_scope1XC1ERKS0_|constexpr}.e9ad42d27c2e4394802f687830879658_1" [label="1: Start continue_scope::X_X\nFormals: this:continue_scope::X* __param_0:continue_scope::X const &\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
"X#X#continue_scope#{_ZN14continue_scope1XC1ERKS0_|constexpr}.e9ad42d27c2e4394802f687830879658_1" -> "X#X#continue_scope#{_ZN14continue_scope1XC1ERKS0_|constexpr}.e9ad42d27c2e4394802f687830879658_2" ;
"X#X#continue_scope#{_ZN14continue_scope1XC1ERKS0_|constexpr}.e9ad42d27c2e4394802f687830879658_2" [label="2: Exit continue_scope::X_X \n " color=yellow style=filled]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_1" [label="1: Start continue_scope::iterator_iterator\nFormals: this:continue_scope::iterator* __param_0:continue_scope::iterator&\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n " color=yellow style=filled]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_1" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_4" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_2" [label="2: Exit continue_scope::iterator_iterator \n " color=yellow style=filled]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_3" [label="3: Constructor Init \n n$0=*&this:continue_scope::iterator* [line 18]\n n$1=*&__param_0:continue_scope::iterator& [line 18]\n n$2=*n$1.vector:continue_scope::vec const * [line 18]\n *n$0.vector:continue_scope::vec const *=n$2 [line 18]\n " shape="box"]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_3" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_2" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_4" [label="4: Constructor Init \n n$3=*&this:continue_scope::iterator* [line 18]\n n$4=*&__param_0:continue_scope::iterator& [line 18]\n n$5=*n$4.position:int [line 18]\n *n$3.position:int=n$5 [line 18]\n " shape="box"]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_4" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EOS0_|constexpr}.993d50dfbd485e94d8c06f743869d907_3" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_1" [label="1: Start continue_scope::iterator_iterator\nFormals: this:continue_scope::iterator* __param_0:continue_scope::iterator const &\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n " color=yellow style=filled]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_1" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_4" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_2" [label="2: Exit continue_scope::iterator_iterator \n " color=yellow style=filled]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_3" [label="3: Constructor Init \n n$0=*&this:continue_scope::iterator* [line 18]\n n$1=*&__param_0:continue_scope::iterator const & [line 18]\n n$2=*n$1.vector:continue_scope::vec const * [line 18]\n *n$0.vector:continue_scope::vec const *=n$2 [line 18]\n " shape="box"]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_3" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_2" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_4" [label="4: Constructor Init \n n$3=*&this:continue_scope::iterator* [line 18]\n n$4=*&__param_0:continue_scope::iterator const & [line 18]\n n$5=*n$4.position:int [line 18]\n *n$3.position:int=n$5 [line 18]\n " shape="box"]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_4" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1ERKS0_|constexpr}.53da0f7b9110ba0d8605a6a1a31c6ee9_3" ;
"operator*#iterator#continue_scope#(_ZNK14continue_scope8iteratordeEv).1fb838f540853bbe2f8d3b1fc4c52a25_1" [label="1: Start continue_scope::iterator_operator*\nFormals: this:continue_scope::iterator* __return_param:continue_scope::X*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 44]\n " color=yellow style=filled]
"operator*#iterator#continue_scope#(_ZNK14continue_scope8iteratordeEv).1fb838f540853bbe2f8d3b1fc4c52a25_1" -> "operator*#iterator#continue_scope#(_ZNK14continue_scope8iteratordeEv).1fb838f540853bbe2f8d3b1fc4c52a25_3" ;
"operator*#iterator#continue_scope#(_ZNK14continue_scope8iteratordeEv).1fb838f540853bbe2f8d3b1fc4c52a25_2" [label="2: Exit continue_scope::iterator_operator* \n " color=yellow style=filled]
"operator*#iterator#continue_scope#(_ZNK14continue_scope8iteratordeEv).1fb838f540853bbe2f8d3b1fc4c52a25_3" [label="3: Return Stmt \n n$0=*&__return_param:continue_scope::X* [line 44]\n n$2=*&this:continue_scope::iterator const * [line 44]\n n$3=*n$2.vector:continue_scope::vec const * [line 44]\n _=*n$3:continue_scope::vec const [line 44]\n n$5=*&this:continue_scope::iterator const * [line 44]\n n$6=*n$5.position:int [line 44]\n _fun_continue_scope::vec_get(n$3:continue_scope::vec const *,n$6:int,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X*) [line 44]\n _fun_continue_scope::X_X(n$0:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X&) [line 44]\n " shape="box"]
"operator*#iterator#continue_scope#(_ZNK14continue_scope8iteratordeEv).1fb838f540853bbe2f8d3b1fc4c52a25_3" -> "operator*#iterator#continue_scope#(_ZNK14continue_scope8iteratordeEv).1fb838f540853bbe2f8d3b1fc4c52a25_2" ;
"operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_1" [label="1: Start continue_scope::iterator_operator++\nFormals: this:continue_scope::iterator* __return_param:continue_scope::iterator*\nLocals: \n DECLARE_LOCALS(&return); [line 24]\n " color=yellow style=filled]
"operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_1" -> "operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_4" ;
"operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_2" [label="2: Exit continue_scope::iterator_operator++ \n " color=yellow style=filled]
"operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_3" [label="3: Return Stmt \n n$0=*&__return_param:continue_scope::iterator* [line 26]\n n$1=*&this:continue_scope::iterator* [line 26]\n _fun_continue_scope::iterator_iterator(n$0:continue_scope::iterator*,n$1:continue_scope::iterator&) [line 26]\n " shape="box"]
"operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_3" -> "operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_2" ;
"operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_4" [label="4: UnaryOperator \n n$2=*&this:continue_scope::iterator* [line 25]\n n$3=*n$2.position:int [line 25]\n *n$2.position:int=(n$3 + 1) [line 25]\n " shape="box"]
"operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_4" -> "operator++#iterator#continue_scope#(_ZN14continue_scope8iteratorppEv).b75b658c1a155c49799468966839a93f_3" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_1" [label="1: Start continue_scope::iterator_operator!=\nFormals: this:continue_scope::iterator* i2:continue_scope::iterator const &\nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$0); [line 29]\n " color=yellow style=filled]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_1" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_4" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_2" [label="2: Exit continue_scope::iterator_operator!= \n " color=yellow style=filled]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_3" [label="3: + \n " ]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_3" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_9" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_4" [label="4: BinaryOperatorStmt: NE \n n$1=*&this:continue_scope::iterator* [line 29]\n n$2=*n$1.position:int [line 29]\n n$3=*&i2:continue_scope::iterator const & [line 29]\n n$4=*n$3.position:int [line 29]\n " shape="box"]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_4" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_5" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_4" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_6" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_5" [label="5: Prune (true branch) \n PRUNE(((n$2 != n$4) != 0), true); [line 29]\n " shape="invhouse"]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_5" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_7" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_6" [label="6: Prune (false branch) \n PRUNE(((n$2 != n$4) == 0), false); [line 29]\n " shape="invhouse"]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_6" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_8" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_7" [label="7: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool=1 [line 29]\n " shape="box"]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_7" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_3" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_8" [label="8: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool=0 [line 29]\n " shape="box"]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_8" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_3" ;
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_9" [label="9: Return Stmt \n n$5=*&0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool [line 29]\n *&return:_Bool=n$5 [line 29]\n " shape="box"]
"operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_9" -> "operator!=#iterator#continue_scope#(_ZN14continue_scope8iteratorneERKS0_).1a8ac8e892f06e2dc2215bfba7c3a3f6_2" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_1" [label="1: Start continue_scope::iterator_iterator\nFormals: this:continue_scope::iterator* v:continue_scope::vec const * pos:int\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n " color=yellow style=filled]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_1" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_4" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_2" [label="2: Exit continue_scope::iterator_iterator \n " color=yellow style=filled]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_3" [label="3: Constructor Init \n n$0=*&this:continue_scope::iterator* [line 22]\n n$1=*&v:continue_scope::vec const * [line 22]\n *n$0.vector:continue_scope::vec const *=n$1 [line 22]\n " shape="box"]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_3" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_2" ;
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_4" [label="4: Constructor Init \n n$2=*&this:continue_scope::iterator* [line 22]\n n$3=*&pos:int [line 22]\n *n$2.position:int=n$3 [line 22]\n " shape="box"]
"iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_4" -> "iterator#iterator#continue_scope#{_ZN14continue_scope8iteratorC1EPKNS_3vecEi}.4de5f9f08229182e9efea8778db8288a_3" ;
"vec#vec#continue_scope#{_ZN14continue_scope3vecC1Ev}.02564fa4cf1e87af7244f8fd35b7d277_1" [label="1: Start continue_scope::vec_vec\nFormals: this:continue_scope::vec*\nLocals: \n DECLARE_LOCALS(&return); [line 35]\n " color=yellow style=filled]
"vec#vec#continue_scope#{_ZN14continue_scope3vecC1Ev}.02564fa4cf1e87af7244f8fd35b7d277_1" -> "vec#vec#continue_scope#{_ZN14continue_scope3vecC1Ev}.02564fa4cf1e87af7244f8fd35b7d277_3" ;
"vec#vec#continue_scope#{_ZN14continue_scope3vecC1Ev}.02564fa4cf1e87af7244f8fd35b7d277_2" [label="2: Exit continue_scope::vec_vec \n " color=yellow style=filled]
"vec#vec#continue_scope#{_ZN14continue_scope3vecC1Ev}.02564fa4cf1e87af7244f8fd35b7d277_3" [label="3: Constructor Init \n n$0=*&this:continue_scope::vec* [line 35]\n _fun_continue_scope::X_X(n$0._data:continue_scope::X[10*1](*)) [line 35]\n " shape="box"]
"vec#vec#continue_scope#{_ZN14continue_scope3vecC1Ev}.02564fa4cf1e87af7244f8fd35b7d277_3" -> "vec#vec#continue_scope#{_ZN14continue_scope3vecC1Ev}.02564fa4cf1e87af7244f8fd35b7d277_2" ;
"~vec#vec#continue_scope#(_ZN14continue_scope3vecD0Ev).0f31d591628d81f66a8e6d7551b6574f_1" [label="1: Start continue_scope::vec_~vec\nFormals: this:continue_scope::vec*\nLocals: \n DECLARE_LOCALS(&return); [line 34]\n " color=yellow style=filled]
"~vec#vec#continue_scope#(_ZN14continue_scope3vecD0Ev).0f31d591628d81f66a8e6d7551b6574f_1" -> "~vec#vec#continue_scope#(_ZN14continue_scope3vecD0Ev).0f31d591628d81f66a8e6d7551b6574f_2" ;
"~vec#vec#continue_scope#(_ZN14continue_scope3vecD0Ev).0f31d591628d81f66a8e6d7551b6574f_2" [label="2: Exit continue_scope::vec_~vec \n " color=yellow style=filled]
"begin#vec#continue_scope#(_ZN14continue_scope3vec5beginEv).4167375ef226120932c1b2e1ed1e96fb_1" [label="1: Start continue_scope::vec_begin\nFormals: this:continue_scope::vec* __return_param:continue_scope::iterator*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 36]\n " color=yellow style=filled]
"begin#vec#continue_scope#(_ZN14continue_scope3vec5beginEv).4167375ef226120932c1b2e1ed1e96fb_1" -> "begin#vec#continue_scope#(_ZN14continue_scope3vec5beginEv).4167375ef226120932c1b2e1ed1e96fb_3" ;
"begin#vec#continue_scope#(_ZN14continue_scope3vec5beginEv).4167375ef226120932c1b2e1ed1e96fb_2" [label="2: Exit continue_scope::vec_begin \n " color=yellow style=filled]
"begin#vec#continue_scope#(_ZN14continue_scope3vec5beginEv).4167375ef226120932c1b2e1ed1e96fb_3" [label="3: Return Stmt \n n$0=*&__return_param:continue_scope::iterator* [line 36]\n n$2=*&this:continue_scope::vec* [line 36]\n _fun_continue_scope::iterator_iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*,n$2:continue_scope::vec*,0:int) [line 36]\n _fun_continue_scope::iterator_iterator(n$0:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator&) [line 36]\n " shape="box"]
"begin#vec#continue_scope#(_ZN14continue_scope3vec5beginEv).4167375ef226120932c1b2e1ed1e96fb_3" -> "begin#vec#continue_scope#(_ZN14continue_scope3vec5beginEv).4167375ef226120932c1b2e1ed1e96fb_2" ;
"end#vec#continue_scope#(_ZN14continue_scope3vec3endEv).a5af1e724468834e1ff3f0e48a7ff4ab_1" [label="1: Start continue_scope::vec_end\nFormals: this:continue_scope::vec* __return_param:continue_scope::iterator*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 37]\n " color=yellow style=filled]
"end#vec#continue_scope#(_ZN14continue_scope3vec3endEv).a5af1e724468834e1ff3f0e48a7ff4ab_1" -> "end#vec#continue_scope#(_ZN14continue_scope3vec3endEv).a5af1e724468834e1ff3f0e48a7ff4ab_3" ;
"end#vec#continue_scope#(_ZN14continue_scope3vec3endEv).a5af1e724468834e1ff3f0e48a7ff4ab_2" [label="2: Exit continue_scope::vec_end \n " color=yellow style=filled]
"end#vec#continue_scope#(_ZN14continue_scope3vec3endEv).a5af1e724468834e1ff3f0e48a7ff4ab_3" [label="3: Return Stmt \n n$0=*&__return_param:continue_scope::iterator* [line 37]\n n$2=*&this:continue_scope::vec* [line 37]\n _fun_continue_scope::iterator_iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*,n$2:continue_scope::vec*,10:int) [line 37]\n _fun_continue_scope::iterator_iterator(n$0:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator&) [line 37]\n " shape="box"]
"end#vec#continue_scope#(_ZN14continue_scope3vec3endEv).a5af1e724468834e1ff3f0e48a7ff4ab_3" -> "end#vec#continue_scope#(_ZN14continue_scope3vec3endEv).a5af1e724468834e1ff3f0e48a7ff4ab_2" ;
"get#vec#continue_scope#(_ZNK14continue_scope3vec3getEi).fb2e8d68b00e35b3afb31f37b028d0ff_1" [label="1: Start continue_scope::vec_get\nFormals: this:continue_scope::vec* pos:int __return_param:continue_scope::X*\nLocals: \n DECLARE_LOCALS(&return); [line 39]\n " color=yellow style=filled]
"get#vec#continue_scope#(_ZNK14continue_scope3vec3getEi).fb2e8d68b00e35b3afb31f37b028d0ff_1" -> "get#vec#continue_scope#(_ZNK14continue_scope3vec3getEi).fb2e8d68b00e35b3afb31f37b028d0ff_3" ;
"get#vec#continue_scope#(_ZNK14continue_scope3vec3getEi).fb2e8d68b00e35b3afb31f37b028d0ff_2" [label="2: Exit continue_scope::vec_get \n " color=yellow style=filled]
"get#vec#continue_scope#(_ZNK14continue_scope3vec3getEi).fb2e8d68b00e35b3afb31f37b028d0ff_3" [label="3: Return Stmt \n n$0=*&__return_param:continue_scope::X* [line 39]\n n$1=*&this:continue_scope::vec const * [line 39]\n n$2=*&pos:int [line 39]\n _fun_continue_scope::X_X(n$0:continue_scope::X*,n$1._data[n$2]:continue_scope::X const &) [line 39]\n " shape="box"]
"get#vec#continue_scope#(_ZNK14continue_scope3vec3getEi).fb2e8d68b00e35b3afb31f37b028d0ff_3" -> "get#vec#continue_scope#(_ZNK14continue_scope3vec3getEi).fb2e8d68b00e35b3afb31f37b028d0ff_2" ;
}
Loading…
Cancel
Save