[destructors] Destroy fields after break.

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

Reviewed By: jberdine

Differential Revision: D5764647

fbshipit-source-id: a7e06ae
master
Daiva Naudziuniene 7 years ago committed by Facebook Github Bot
parent 822ffc6f62
commit c6c7411e05

@ -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 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} {empty_res_trans with instrs= [call_instr]; exps= ret_exps; initd_exps}
let breakStmt_trans trans_state =
match trans_state.continuation with
| Some bn
-> {empty_res_trans with root_nodes= bn.break}
| _
-> assert false
let continueStmt_trans trans_state = let continueStmt_trans trans_state =
match trans_state.continuation with match trans_state.continuation with
| Some bn | Some bn
@ -2923,6 +2916,16 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
| _ | _
-> assert false -> assert false
and breakStmt_trans trans_state stmt_info =
match trans_state.continuation with
| Some bn
-> let trans_state' = {trans_state with succ_nodes= bn.break} 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.break}
| _
-> assert false
(* Expect that this doesn't happen *) (* Expect that this doesn't happen *)
and trans_into_undefined_expr trans_state expr_info = and trans_into_undefined_expr trans_state expr_info =
let tenv = trans_state.context.CContext.tenv in let tenv = trans_state.context.CContext.tenv in
@ -3075,8 +3078,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
-> objCDictionaryLiteral_trans trans_state info stmt_info stmts -> objCDictionaryLiteral_trans trans_state info stmt_info stmts
| ObjCStringLiteral (stmt_info, stmts, info) | ObjCStringLiteral (stmt_info, stmts, info)
-> objCStringLiteral_trans trans_state stmt_info stmts info -> objCStringLiteral_trans trans_state stmt_info stmts info
| BreakStmt _ | BreakStmt (stmt_info, _)
-> breakStmt_trans trans_state -> breakStmt_trans trans_state stmt_info
| ContinueStmt _ | ContinueStmt _
-> continueStmt_trans trans_state -> continueStmt_trans trans_state
| ObjCAtSynchronizedStmt (_, stmt_list) | ObjCAtSynchronizedStmt (_, stmt_list)

@ -300,8 +300,10 @@ module Scope = struct
let ptr = stmt_info.Clang_ast_t.si_pointer in let ptr = stmt_info.Clang_ast_t.si_pointer in
StmtMap.add var_map ~key:ptr ~data:vars StmtMap.add var_map ~key:ptr ~data:vars
let rec compute_vars vars_in_scope var_map stmt = let rec compute_vars vars_in_scope break_count var_map stmt =
(* vars_in_scope corresponds to the list of all variables existing in the current scope *) (* vars_in_scope corresponds to the list of all variables existing in the current scope *)
(* break_count saves the number of variables in the current scope when entering the most recent loop *)
(* there is an assumption that break can only be used in iteration statements *)
let open Clang_ast_t in let open Clang_ast_t in
let get_var_info_from_decl = function VarDecl _ as decl -> Some decl | _ -> None in let get_var_info_from_decl = function VarDecl _ as decl -> Some decl | _ -> None in
let get_new_vars = function let get_new_vars = function
@ -310,31 +312,44 @@ module Scope = struct
| _ | _
-> [] -> []
in in
let rec handle_instructions_block var_map vars_in_scope instrs = let rec handle_instructions_block var_map vars_in_scope break_count instrs =
match instrs with match instrs with
| [] | []
-> (vars_in_scope, var_map) -> (vars_in_scope, var_map)
| stmt :: rest | stmt :: rest
-> let new_var_map = compute_vars vars_in_scope var_map stmt in -> let new_var_map = compute_vars vars_in_scope break_count var_map stmt in
let new_vars_in_stmt = get_new_vars stmt in let new_vars_in_stmt = get_new_vars stmt in
handle_instructions_block new_var_map (new_vars_in_stmt @ vars_in_scope) rest handle_instructions_block new_var_map (new_vars_in_stmt @ vars_in_scope) break_count rest
in in
(* TODO handle following stmts: *) (* TODO handle following stmts: *)
(* BreakStmt _ | ContinueStmt _ | GotoStmt _ | ForStmt _ | WhileStmt _ | (* ContinueStmt _ | GotoStmt _ | | LabelStmt_ *)
DoStmt _ | IfStmt _ | SwitchStmt _ | CXXForRangeStmt _ | LabelStmt_ *)
match stmt with match stmt with
| CompoundStmt (stmt_info, stmt_list) | CompoundStmt (stmt_info, stmt_list)
-> let vars, new_var_map = handle_instructions_block var_map vars_in_scope stmt_list in -> let vars, new_var_map =
handle_instructions_block var_map vars_in_scope break_count stmt_list
in
(* vars contains the variables defined in the current compound statement + vars_in_scope *) (* vars contains the variables defined in the current compound statement + vars_in_scope *)
let vars_to_destroy = List.take vars (List.length vars - List.length vars_in_scope) in let vars_to_destroy = List.take vars (List.length vars - List.length vars_in_scope) in
add_scope_vars_to_destroy new_var_map stmt_info vars_to_destroy add_scope_vars_to_destroy new_var_map stmt_info vars_to_destroy
| ReturnStmt (stmt_info, _) | ReturnStmt (stmt_info, _)
-> add_scope_vars_to_destroy var_map stmt_info vars_in_scope -> add_scope_vars_to_destroy var_map stmt_info vars_in_scope
| BreakStmt (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)
| DoStmt (_, stmt_list)
| SwitchStmt (_, stmt_list)
(* TODO handle variable declarations inside for / foreach *)
| ForStmt (_, stmt_list)
| CXXForRangeStmt (_, stmt_list)
-> let break_count = List.length vars_in_scope in
List.fold_left ~f:(compute_vars vars_in_scope break_count) stmt_list ~init:var_map
| _ | _
-> let stmt_list = snd (Clang_ast_proj.get_stmt_tuple stmt) in -> let stmt_list = snd (Clang_ast_proj.get_stmt_tuple stmt) in
List.fold_left ~f:(compute_vars vars_in_scope) stmt_list ~init:var_map List.fold_left ~f:(compute_vars vars_in_scope break_count) stmt_list ~init:var_map
let compute_vars_to_destroy body = List.fold_left ~f:(compute_vars []) ~init:StmtMap.empty [body] let compute_vars_to_destroy body =
List.fold_left ~f:(compute_vars [] 0) ~init:StmtMap.empty [body]
end end
(** This function handles ObjC new/alloc and C++ new calls *) (** This function handles ObjC new/alloc and C++ new calls *)

@ -0,0 +1,132 @@
/*
* 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 break_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;
break;
}
}
}
void test_for(bool b) {
vec vector;
for (iterator it = vector.begin(); it != vector.end(); ++it) {
if (b) {
X x1;
break;
}
}
X x2;
}
void test_while1(bool a, bool b) {
X x1;
while (a) {
if (b) {
X x2;
break;
} else {
X x4;
}
}
}
void test_do_while(bool a, bool b) {
X x1;
do {
X x2;
if (b) {
X x3;
break;
} else {
X x4;
}
} while (a);
}
void test_while2(bool a, bool b) {
X x1;
while (a) {
X x2;
while (b) {
X x3;
break;
}
}
}
void test_while3(bool a, bool b) {
X x1;
while (a) {
X x2;
while (b) {
break;
}
}
X x3;
}
void test_switch(int n) {
X x1;
switch (n) {
case 1: {
X x2;
}
case 2: {
X x3;
break;
}
case 3: {
X x4;
}
}
X x5;
}
} // namespace break_scope

@ -0,0 +1,654 @@
/* @generated */
digraph iCFG {
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_1" [label="1: Start break_scope::test_while1\nFormals: a:_Bool b:_Bool\nLocals: x2:break_scope::X x4:break_scope::X x1:break_scope::X \n DECLARE_LOCALS(&return,&x2,&x4,&x1); [line 68]\n " color=yellow style=filled]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_1" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_15" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_2" [label="2: Exit break_scope::test_while1 \n " color=yellow style=filled]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 78]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 78]\n " shape="box"]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_3" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_2" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_4" [label="4: + \n " ]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_4" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_5" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_4" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_6" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_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#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_5" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_8" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_5" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_9" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_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#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_6" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_3" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_7" [label="7: + \n " ]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_7" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_4" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_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#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_8" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_12" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_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#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_9" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_14" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_10" [label="10: Destruction \n _=*&x2:break_scope::X [line 74]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 74]\n " shape="box"]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_10" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_7" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_11" [label="11: Destruction \n _=*&x2:break_scope::X [line 73]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 73]\n " shape="box"]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_11" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_3" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_12" [label="12: DeclStmt \n _fun_break_scope::X_X(&x2:break_scope::X*) [line 72]\n " shape="box"]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_12" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_11" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_13" [label="13: Destruction \n _=*&x4:break_scope::X [line 76]\n _fun_break_scope::X_~X(&x4:break_scope::X*) [line 76]\n " shape="box"]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_13" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_7" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_14" [label="14: DeclStmt \n _fun_break_scope::X_X(&x4:break_scope::X*) [line 75]\n " shape="box"]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_14" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_13" ;
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_15" [label="15: DeclStmt \n _fun_break_scope::X_X(&x1:break_scope::X*) [line 69]\n " shape="box"]
"test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_15" -> "test_while1#break_scope#_ZN11break_scope11test_while1Ebb.87234e85e70cb0cc1aa3913b17181871_4" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_1" [label="1: Start break_scope::test_do_while\nFormals: a:_Bool b:_Bool\nLocals: x3:break_scope::X x4:break_scope::X x2:break_scope::X x1:break_scope::X \n DECLARE_LOCALS(&return,&x3,&x4,&x2,&x1); [line 80]\n " color=yellow style=filled]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_1" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_17" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_2" [label="2: Exit break_scope::test_do_while \n " color=yellow style=filled]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 91]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 91]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_3" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_2" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_4" [label="4: + \n " ]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_4" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_16" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_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#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_5" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_4" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_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#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_6" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_3" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_7" [label="7: Destruction \n _=*&x2:break_scope::X [line 90]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 90]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_7" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_5" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_7" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_6" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_8" [label="8: + \n " ]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_8" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_7" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_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#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_9" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_13" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_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#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_10" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_15" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_11" [label="11: Destruction \n _=*&x3:break_scope::X [line 87]\n _fun_break_scope::X_~X(&x3:break_scope::X*) [line 87]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_11" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_8" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_12" [label="12: Destruction \n _=*&x3:break_scope::X [line 86]\n _fun_break_scope::X_~X(&x3:break_scope::X*) [line 86]\n _=*&x2:break_scope::X [line 86]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 86]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_12" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_3" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_13" [label="13: DeclStmt \n _fun_break_scope::X_X(&x3:break_scope::X*) [line 85]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_13" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_12" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_14" [label="14: Destruction \n _=*&x4:break_scope::X [line 89]\n _fun_break_scope::X_~X(&x4:break_scope::X*) [line 89]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_14" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_8" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_15" [label="15: DeclStmt \n _fun_break_scope::X_X(&x4:break_scope::X*) [line 88]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_15" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_14" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_16" [label="16: DeclStmt \n _fun_break_scope::X_X(&x2:break_scope::X*) [line 83]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_16" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_9" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_16" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_10" ;
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_17" [label="17: DeclStmt \n _fun_break_scope::X_X(&x1:break_scope::X*) [line 81]\n " shape="box"]
"test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_17" -> "test_do_while#break_scope#_ZN11break_scope13test_do_whileEbb.ac867a723153cd864495ab1a123b5fbf_4" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_1" [label="1: Start break_scope::test_while2\nFormals: a:_Bool b:_Bool\nLocals: x3:break_scope::X x2:break_scope::X x1:break_scope::X \n DECLARE_LOCALS(&return,&x3,&x2,&x1); [line 93]\n " color=yellow style=filled]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_1" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_15" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_2" [label="2: Exit break_scope::test_while2 \n " color=yellow style=filled]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 102]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 102]\n " shape="box"]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_3" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_2" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_4" [label="4: + \n " ]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_4" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_5" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_4" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_6" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_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#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_5" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_14" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_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#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_6" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_3" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_7" [label="7: Destruction \n _=*&x2:break_scope::X [line 101]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 101]\n " shape="box"]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_7" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_4" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_8" [label="8: + \n " ]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_8" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_9" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_8" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_10" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_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#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_9" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_13" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_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#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_10" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_7" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_11" [label="11: Destruction \n _=*&x3:break_scope::X [line 100]\n _fun_break_scope::X_~X(&x3:break_scope::X*) [line 100]\n " shape="box"]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_11" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_8" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_12" [label="12: Destruction \n _=*&x3:break_scope::X [line 99]\n _fun_break_scope::X_~X(&x3:break_scope::X*) [line 99]\n " shape="box"]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_12" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_7" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_13" [label="13: DeclStmt \n _fun_break_scope::X_X(&x3:break_scope::X*) [line 98]\n " shape="box"]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_13" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_12" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_14" [label="14: DeclStmt \n _fun_break_scope::X_X(&x2:break_scope::X*) [line 96]\n " shape="box"]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_14" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_8" ;
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_15" [label="15: DeclStmt \n _fun_break_scope::X_X(&x1:break_scope::X*) [line 94]\n " shape="box"]
"test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_15" -> "test_while2#break_scope#_ZN11break_scope11test_while2Ebb.93a3742c6f6f3cb77337b80b2e23fbaa_4" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_1" [label="1: Start break_scope::test_while3\nFormals: a:_Bool b:_Bool\nLocals: x3:break_scope::X x2:break_scope::X x1:break_scope::X \n DECLARE_LOCALS(&return,&x3,&x2,&x1); [line 104]\n " color=yellow style=filled]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_1" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_13" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_2" [label="2: Exit break_scope::test_while3 \n " color=yellow style=filled]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_3" [label="3: Destruction \n _=*&x3:break_scope::X [line 113]\n _fun_break_scope::X_~X(&x3:break_scope::X*) [line 113]\n _=*&x1:break_scope::X [line 113]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 113]\n " shape="box"]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_3" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_2" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_4" [label="4: DeclStmt \n _fun_break_scope::X_X(&x3:break_scope::X*) [line 112]\n " shape="box"]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_4" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_3" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_5" [label="5: + \n " ]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_5" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_6" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_5" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_7" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_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#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_6" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_12" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_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#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_7" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_4" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_8" [label="8: Destruction \n _=*&x2:break_scope::X [line 111]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 111]\n " shape="box"]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_8" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_5" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_9" [label="9: + \n " ]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_9" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_10" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_9" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_11" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_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#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_10" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_8" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_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#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_11" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_8" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_12" [label="12: DeclStmt \n _fun_break_scope::X_X(&x2:break_scope::X*) [line 107]\n " shape="box"]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_12" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_9" ;
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_13" [label="13: DeclStmt \n _fun_break_scope::X_X(&x1:break_scope::X*) [line 105]\n " shape="box"]
"test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_13" -> "test_while3#break_scope#_ZN11break_scope11test_while3Ebb.816f0f6b0e9672402973ccf27843e9f2_5" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_1" [label="1: Start break_scope::test_for_range\nFormals: b:_Bool\nLocals: __end:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$2:break_scope::iterator __begin:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$6:break_scope::iterator 0$?%__sil_tmp__temp_return_n$11:break_scope::iterator x2:break_scope::X x:break_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$16:break_scope::X __range:break_scope::vec& x1:break_scope::X vector:break_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#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_1" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_20" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_2" [label="2: Exit break_scope::test_for_range \n " color=yellow style=filled]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 55]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 55]\n _=*&vector:break_scope::vec [line 55]\n _fun_break_scope::vec_~vec(&vector:break_scope::vec*) [line 55]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_3" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_2" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_4" [label="4: + \n " ]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_4" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_8" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_5" [label="5: DeclStmt \n n$3=*&__range:break_scope::vec& [line 49]\n _=*n$3:break_scope::vec [line 49]\n _fun_break_scope::vec_end(n$3:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$2:break_scope::iterator*) [line 49]\n _fun_break_scope::iterator_iterator(&__end:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$2:break_scope::iterator&) [line 49]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_5" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_4" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_6" [label="6: DeclStmt \n n$7=*&__range:break_scope::vec& [line 49]\n _=*n$7:break_scope::vec [line 49]\n _fun_break_scope::vec_begin(n$7:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$6:break_scope::iterator*) [line 49]\n _fun_break_scope::iterator_iterator(&__begin:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$6:break_scope::iterator&) [line 49]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_6" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_5" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_7" [label="7: Call _fun_break_scope::iterator_operator++ \n _fun_break_scope::iterator_operator++(&__begin:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$11:break_scope::iterator*) [line 49]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_7" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_4" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_8" [label="8: Call _fun_break_scope::iterator_operator!= \n n$12=_fun_break_scope::iterator_operator!=(&__begin:break_scope::iterator&,&__end:break_scope::iterator&) [line 49]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_8" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_9" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_8" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_10" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_9" [label="9: Prune (true branch) \n PRUNE((n$12 != 0), true); [line 49]\n " shape="invhouse"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_9" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_17" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_10" [label="10: Prune (false branch) \n PRUNE((n$12 == 0), false); [line 49]\n " shape="invhouse"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_10" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_3" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_11" [label="11: + \n " ]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_11" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_7" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_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#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_12" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_16" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_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#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_13" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_11" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_14" [label="14: Destruction \n _=*&x2:break_scope::X [line 53]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 53]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_14" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_11" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_15" [label="15: Destruction \n _=*&x2:break_scope::X [line 52]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 52]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_15" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_3" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_16" [label="16: DeclStmt \n _fun_break_scope::X_X(&x2:break_scope::X*,&x:break_scope::X&) [line 51]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_16" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_15" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_17" [label="17: DeclStmt \n _fun_break_scope::iterator_operator*(&__begin:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$16:break_scope::X*) [line 49]\n _fun_break_scope::X_X(&x:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$16:break_scope::X&) [line 49]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_17" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_12" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_17" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_13" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_18" [label="18: DeclStmt \n *&__range:break_scope::vec&=&vector [line 49]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_18" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_6" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_19" [label="19: DeclStmt \n _fun_break_scope::X_X(&x1:break_scope::X*) [line 48]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_19" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_18" ;
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_20" [label="20: DeclStmt \n _fun_break_scope::vec_vec(&vector:break_scope::vec*) [line 47]\n " shape="box"]
"test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_20" -> "test_for_range#break_scope#_ZN11break_scope14test_for_rangeEb.a82df87d502190ce4b0145f61f38178e_19" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_1" [label="1: Start break_scope::test_for\nFormals: b:_Bool\nLocals: x2:break_scope::X it:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$2:break_scope::iterator 0$?%__sil_tmp__temp_return_n$6:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator x1:break_scope::X vector:break_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#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_1" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_17" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_2" [label="2: Exit break_scope::test_for \n " color=yellow style=filled]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_3" [label="3: Destruction \n _=*&x2:break_scope::X [line 66]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 66]\n _=*&vector:break_scope::vec [line 66]\n _fun_break_scope::vec_~vec(&vector:break_scope::vec*) [line 66]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_3" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_2" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_4" [label="4: DeclStmt \n _fun_break_scope::X_X(&x2:break_scope::X*) [line 65]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_4" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_3" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_5" [label="5: + \n " ]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_5" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_8" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_6" [label="6: DeclStmt \n _=*&vector:break_scope::vec [line 59]\n _fun_break_scope::vec_begin(&vector:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$2:break_scope::iterator*) [line 59]\n _fun_break_scope::iterator_iterator(&it:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$2:break_scope::iterator&) [line 59]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_6" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_5" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_7" [label="7: Call _fun_break_scope::iterator_operator++ \n _fun_break_scope::iterator_operator++(&it:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$6:break_scope::iterator*) [line 59]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_7" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_5" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_8" [label="8: Call _fun_break_scope::iterator_operator!= \n _=*&vector:break_scope::vec [line 59]\n _fun_break_scope::vec_end(&vector:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator*) [line 59]\n n$10=_fun_break_scope::iterator_operator!=(&it:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$7:break_scope::iterator&) [line 59]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_8" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_9" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_8" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_10" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_9" [label="9: Prune (true branch) \n PRUNE((n$10 != 0), true); [line 59]\n " shape="invhouse"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_9" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_12" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_9" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_13" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_10" [label="10: Prune (false branch) \n PRUNE((n$10 == 0), false); [line 59]\n " shape="invhouse"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_10" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_4" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_11" [label="11: + \n " ]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_11" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_7" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_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#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_12" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_16" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_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#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_13" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_11" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_14" [label="14: Destruction \n _=*&x1:break_scope::X [line 63]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 63]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_14" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_11" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_15" [label="15: Destruction \n _=*&x1:break_scope::X [line 62]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 62]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_15" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_4" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_16" [label="16: DeclStmt \n _fun_break_scope::X_X(&x1:break_scope::X*) [line 61]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_16" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_15" ;
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_17" [label="17: DeclStmt \n _fun_break_scope::vec_vec(&vector:break_scope::vec*) [line 58]\n " shape="box"]
"test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_17" -> "test_for#break_scope#_ZN11break_scope8test_forEb.48a8fc76815c8ffdf17a13ca35665eab_6" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_1" [label="1: Start break_scope::test_switch\nFormals: n:int\nLocals: x5:break_scope::X x4:break_scope::X x3:break_scope::X x2:break_scope::X x1:break_scope::X \n DECLARE_LOCALS(&return,&x5,&x4,&x3,&x2,&x1); [line 115]\n " color=yellow style=filled]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_1" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_19" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_2" [label="2: Exit break_scope::test_switch \n " color=yellow style=filled]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_3" [label="3: Destruction \n _=*&x5:break_scope::X [line 130]\n _fun_break_scope::X_~X(&x5:break_scope::X*) [line 130]\n _=*&x1:break_scope::X [line 130]\n _fun_break_scope::X_~X(&x1:break_scope::X*) [line 130]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_3" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_2" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_4" [label="4: DeclStmt \n _fun_break_scope::X_X(&x5:break_scope::X*) [line 129]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_4" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_3" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_5" [label="5: Switch_stmt \n n$2=*&n:int [line 117]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_5" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_17" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_5" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_18" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_6" [label="6: Destruction \n _=*&x4:break_scope::X [line 127]\n _fun_break_scope::X_~X(&x4:break_scope::X*) [line 127]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_6" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_4" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_7" [label="7: DeclStmt \n _fun_break_scope::X_X(&x4:break_scope::X*) [line 126]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_7" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_6" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_8" [label="8: Prune (true branch) \n PRUNE(((n$2 == 3) != 0), true); [line 125]\n " shape="invhouse"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_8" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_7" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_9" [label="9: Prune (false branch) \n PRUNE(((n$2 == 3) == 0), false); [line 125]\n " shape="invhouse"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_9" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_4" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_10" [label="10: Destruction \n _=*&x3:break_scope::X [line 124]\n _fun_break_scope::X_~X(&x3:break_scope::X*) [line 124]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_10" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_7" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_11" [label="11: Destruction \n _=*&x3:break_scope::X [line 123]\n _fun_break_scope::X_~X(&x3:break_scope::X*) [line 123]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_11" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_4" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_12" [label="12: DeclStmt \n _fun_break_scope::X_X(&x3:break_scope::X*) [line 122]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_12" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_11" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_13" [label="13: Prune (true branch) \n PRUNE(((n$2 == 2) != 0), true); [line 121]\n " shape="invhouse"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_13" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_12" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_14" [label="14: Prune (false branch) \n PRUNE(((n$2 == 2) == 0), false); [line 121]\n " shape="invhouse"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_14" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_8" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_14" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_9" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_15" [label="15: Destruction \n _=*&x2:break_scope::X [line 120]\n _fun_break_scope::X_~X(&x2:break_scope::X*) [line 120]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_15" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_12" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_16" [label="16: DeclStmt \n _fun_break_scope::X_X(&x2:break_scope::X*) [line 119]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_16" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_15" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_17" [label="17: Prune (true branch) \n PRUNE(((n$2 == 1) != 0), true); [line 118]\n " shape="invhouse"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_17" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_16" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_18" [label="18: Prune (false branch) \n PRUNE(((n$2 == 1) == 0), false); [line 118]\n " shape="invhouse"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_18" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_13" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_18" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_14" ;
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_19" [label="19: DeclStmt \n _fun_break_scope::X_X(&x1:break_scope::X*) [line 116]\n " shape="box"]
"test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_19" -> "test_switch#break_scope#_ZN11break_scope11test_switchEi.ba6acc7c74c8feaa80e2cb25d3074678_5" ;
"X#X#break_scope#{_ZN11break_scope1XC1Ev|constexpr}.c40e3536eb37af840612f198a520182a_1" [label="1: Start break_scope::X_X\nFormals: this:break_scope::X*\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
"X#X#break_scope#{_ZN11break_scope1XC1Ev|constexpr}.c40e3536eb37af840612f198a520182a_1" -> "X#X#break_scope#{_ZN11break_scope1XC1Ev|constexpr}.c40e3536eb37af840612f198a520182a_2" ;
"X#X#break_scope#{_ZN11break_scope1XC1Ev|constexpr}.c40e3536eb37af840612f198a520182a_2" [label="2: Exit break_scope::X_X \n " color=yellow style=filled]
"~X#X#break_scope#(_ZN11break_scope1XD0Ev).c4abbf50a9425a7490a5d9414ad324ac_1" [label="1: Start break_scope::X_~X\nFormals: this:break_scope::X*\nLocals: \n DECLARE_LOCALS(&return); [line 12]\n " color=yellow style=filled]
"~X#X#break_scope#(_ZN11break_scope1XD0Ev).c4abbf50a9425a7490a5d9414ad324ac_1" -> "~X#X#break_scope#(_ZN11break_scope1XD0Ev).c4abbf50a9425a7490a5d9414ad324ac_2" ;
"~X#X#break_scope#(_ZN11break_scope1XD0Ev).c4abbf50a9425a7490a5d9414ad324ac_2" [label="2: Exit break_scope::X_~X \n " color=yellow style=filled]
"X#X#break_scope#{_ZN11break_scope1XC1ERKS0_|constexpr}.ac741cc117694680a0db71143e20b138_1" [label="1: Start break_scope::X_X\nFormals: this:break_scope::X* __param_0:break_scope::X const &\nLocals: \n DECLARE_LOCALS(&return); [line 11]\n " color=yellow style=filled]
"X#X#break_scope#{_ZN11break_scope1XC1ERKS0_|constexpr}.ac741cc117694680a0db71143e20b138_1" -> "X#X#break_scope#{_ZN11break_scope1XC1ERKS0_|constexpr}.ac741cc117694680a0db71143e20b138_2" ;
"X#X#break_scope#{_ZN11break_scope1XC1ERKS0_|constexpr}.ac741cc117694680a0db71143e20b138_2" [label="2: Exit break_scope::X_X \n " color=yellow style=filled]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_1" [label="1: Start break_scope::iterator_iterator\nFormals: this:break_scope::iterator* __param_0:break_scope::iterator&\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n " color=yellow style=filled]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_1" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_4" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_2" [label="2: Exit break_scope::iterator_iterator \n " color=yellow style=filled]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_3" [label="3: Constructor Init \n n$0=*&this:break_scope::iterator* [line 18]\n n$1=*&__param_0:break_scope::iterator& [line 18]\n n$2=*n$1.vector:break_scope::vec const * [line 18]\n *n$0.vector:break_scope::vec const *=n$2 [line 18]\n " shape="box"]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_3" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_2" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_4" [label="4: Constructor Init \n n$3=*&this:break_scope::iterator* [line 18]\n n$4=*&__param_0:break_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#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_4" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EOS0_|constexpr}.2f52ae14dd1c943ad18ad0b9f076ed2f_3" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_1" [label="1: Start break_scope::iterator_iterator\nFormals: this:break_scope::iterator* __param_0:break_scope::iterator const &\nLocals: \n DECLARE_LOCALS(&return); [line 18]\n " color=yellow style=filled]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_1" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_4" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_2" [label="2: Exit break_scope::iterator_iterator \n " color=yellow style=filled]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_3" [label="3: Constructor Init \n n$0=*&this:break_scope::iterator* [line 18]\n n$1=*&__param_0:break_scope::iterator const & [line 18]\n n$2=*n$1.vector:break_scope::vec const * [line 18]\n *n$0.vector:break_scope::vec const *=n$2 [line 18]\n " shape="box"]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_3" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_2" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_4" [label="4: Constructor Init \n n$3=*&this:break_scope::iterator* [line 18]\n n$4=*&__param_0:break_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#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_4" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1ERKS0_|constexpr}.ce4c19d3d6f0f3b95cd86a91ec6ed3fc_3" ;
"operator*#iterator#break_scope#(_ZNK11break_scope8iteratordeEv).63f86082e1486428f2091f677107c2cd_1" [label="1: Start break_scope::iterator_operator*\nFormals: this:break_scope::iterator* __return_param:break_scope::X*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 44]\n " color=yellow style=filled]
"operator*#iterator#break_scope#(_ZNK11break_scope8iteratordeEv).63f86082e1486428f2091f677107c2cd_1" -> "operator*#iterator#break_scope#(_ZNK11break_scope8iteratordeEv).63f86082e1486428f2091f677107c2cd_3" ;
"operator*#iterator#break_scope#(_ZNK11break_scope8iteratordeEv).63f86082e1486428f2091f677107c2cd_2" [label="2: Exit break_scope::iterator_operator* \n " color=yellow style=filled]
"operator*#iterator#break_scope#(_ZNK11break_scope8iteratordeEv).63f86082e1486428f2091f677107c2cd_3" [label="3: Return Stmt \n n$0=*&__return_param:break_scope::X* [line 44]\n n$2=*&this:break_scope::iterator const * [line 44]\n n$3=*n$2.vector:break_scope::vec const * [line 44]\n _=*n$3:break_scope::vec const [line 44]\n n$5=*&this:break_scope::iterator const * [line 44]\n n$6=*n$5.position:int [line 44]\n _fun_break_scope::vec_get(n$3:break_scope::vec const *,n$6:int,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X*) [line 44]\n _fun_break_scope::X_X(n$0:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X&) [line 44]\n " shape="box"]
"operator*#iterator#break_scope#(_ZNK11break_scope8iteratordeEv).63f86082e1486428f2091f677107c2cd_3" -> "operator*#iterator#break_scope#(_ZNK11break_scope8iteratordeEv).63f86082e1486428f2091f677107c2cd_2" ;
"operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_1" [label="1: Start break_scope::iterator_operator++\nFormals: this:break_scope::iterator* __return_param:break_scope::iterator*\nLocals: \n DECLARE_LOCALS(&return); [line 24]\n " color=yellow style=filled]
"operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_1" -> "operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_4" ;
"operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_2" [label="2: Exit break_scope::iterator_operator++ \n " color=yellow style=filled]
"operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_3" [label="3: Return Stmt \n n$0=*&__return_param:break_scope::iterator* [line 26]\n n$1=*&this:break_scope::iterator* [line 26]\n _fun_break_scope::iterator_iterator(n$0:break_scope::iterator*,n$1:break_scope::iterator&) [line 26]\n " shape="box"]
"operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_3" -> "operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_2" ;
"operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_4" [label="4: UnaryOperator \n n$2=*&this:break_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#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_4" -> "operator++#iterator#break_scope#(_ZN11break_scope8iteratorppEv).46a79aad0398876fa211bce8ff8a841d_3" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_1" [label="1: Start break_scope::iterator_operator!=\nFormals: this:break_scope::iterator* i2:break_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#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_1" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_4" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_2" [label="2: Exit break_scope::iterator_operator!= \n " color=yellow style=filled]
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_3" [label="3: + \n " ]
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_3" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_9" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_4" [label="4: BinaryOperatorStmt: NE \n n$1=*&this:break_scope::iterator* [line 29]\n n$2=*n$1.position:int [line 29]\n n$3=*&i2:break_scope::iterator const & [line 29]\n n$4=*n$3.position:int [line 29]\n " shape="box"]
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_4" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_5" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_4" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_6" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_5" [label="5: Prune (true branch) \n PRUNE(((n$2 != n$4) != 0), true); [line 29]\n " shape="invhouse"]
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_5" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_7" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_6" [label="6: Prune (false branch) \n PRUNE(((n$2 != n$4) == 0), false); [line 29]\n " shape="invhouse"]
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_6" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_8" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_7" [label="7: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool=1 [line 29]\n " shape="box"]
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_7" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_3" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_8" [label="8: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool=0 [line 29]\n " shape="box"]
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_8" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_3" ;
"operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_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#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_9" -> "operator!=#iterator#break_scope#(_ZN11break_scope8iteratorneERKS0_).f09ab1c2847188a3508d156b5037e2e3_2" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_1" [label="1: Start break_scope::iterator_iterator\nFormals: this:break_scope::iterator* v:break_scope::vec const * pos:int\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n " color=yellow style=filled]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_1" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_4" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_2" [label="2: Exit break_scope::iterator_iterator \n " color=yellow style=filled]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_3" [label="3: Constructor Init \n n$0=*&this:break_scope::iterator* [line 22]\n n$1=*&v:break_scope::vec const * [line 22]\n *n$0.vector:break_scope::vec const *=n$1 [line 22]\n " shape="box"]
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_3" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_2" ;
"iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_4" [label="4: Constructor Init \n n$2=*&this:break_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#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_4" -> "iterator#iterator#break_scope#{_ZN11break_scope8iteratorC1EPKNS_3vecEi}.55d4dcb0c606f7b9276eafcdd78220a5_3" ;
"vec#vec#break_scope#{_ZN11break_scope3vecC1Ev}.cb47feb1d11066b4d5321ee0edf92827_1" [label="1: Start break_scope::vec_vec\nFormals: this:break_scope::vec*\nLocals: \n DECLARE_LOCALS(&return); [line 35]\n " color=yellow style=filled]
"vec#vec#break_scope#{_ZN11break_scope3vecC1Ev}.cb47feb1d11066b4d5321ee0edf92827_1" -> "vec#vec#break_scope#{_ZN11break_scope3vecC1Ev}.cb47feb1d11066b4d5321ee0edf92827_3" ;
"vec#vec#break_scope#{_ZN11break_scope3vecC1Ev}.cb47feb1d11066b4d5321ee0edf92827_2" [label="2: Exit break_scope::vec_vec \n " color=yellow style=filled]
"vec#vec#break_scope#{_ZN11break_scope3vecC1Ev}.cb47feb1d11066b4d5321ee0edf92827_3" [label="3: Constructor Init \n n$0=*&this:break_scope::vec* [line 35]\n _fun_break_scope::X_X(n$0._data:break_scope::X[10*1](*)) [line 35]\n " shape="box"]
"vec#vec#break_scope#{_ZN11break_scope3vecC1Ev}.cb47feb1d11066b4d5321ee0edf92827_3" -> "vec#vec#break_scope#{_ZN11break_scope3vecC1Ev}.cb47feb1d11066b4d5321ee0edf92827_2" ;
"~vec#vec#break_scope#(_ZN11break_scope3vecD0Ev).053725d75c82d883e2b287c914d73376_1" [label="1: Start break_scope::vec_~vec\nFormals: this:break_scope::vec*\nLocals: \n DECLARE_LOCALS(&return); [line 34]\n " color=yellow style=filled]
"~vec#vec#break_scope#(_ZN11break_scope3vecD0Ev).053725d75c82d883e2b287c914d73376_1" -> "~vec#vec#break_scope#(_ZN11break_scope3vecD0Ev).053725d75c82d883e2b287c914d73376_2" ;
"~vec#vec#break_scope#(_ZN11break_scope3vecD0Ev).053725d75c82d883e2b287c914d73376_2" [label="2: Exit break_scope::vec_~vec \n " color=yellow style=filled]
"begin#vec#break_scope#(_ZN11break_scope3vec5beginEv).74725bafe1f90b7d151b8912e60afd42_1" [label="1: Start break_scope::vec_begin\nFormals: this:break_scope::vec* __return_param:break_scope::iterator*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 36]\n " color=yellow style=filled]
"begin#vec#break_scope#(_ZN11break_scope3vec5beginEv).74725bafe1f90b7d151b8912e60afd42_1" -> "begin#vec#break_scope#(_ZN11break_scope3vec5beginEv).74725bafe1f90b7d151b8912e60afd42_3" ;
"begin#vec#break_scope#(_ZN11break_scope3vec5beginEv).74725bafe1f90b7d151b8912e60afd42_2" [label="2: Exit break_scope::vec_begin \n " color=yellow style=filled]
"begin#vec#break_scope#(_ZN11break_scope3vec5beginEv).74725bafe1f90b7d151b8912e60afd42_3" [label="3: Return Stmt \n n$0=*&__return_param:break_scope::iterator* [line 36]\n n$2=*&this:break_scope::vec* [line 36]\n _fun_break_scope::iterator_iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*,n$2:break_scope::vec*,0:int) [line 36]\n _fun_break_scope::iterator_iterator(n$0:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator&) [line 36]\n " shape="box"]
"begin#vec#break_scope#(_ZN11break_scope3vec5beginEv).74725bafe1f90b7d151b8912e60afd42_3" -> "begin#vec#break_scope#(_ZN11break_scope3vec5beginEv).74725bafe1f90b7d151b8912e60afd42_2" ;
"end#vec#break_scope#(_ZN11break_scope3vec3endEv).6b3b01431838f66b355b102f485b58be_1" [label="1: Start break_scope::vec_end\nFormals: this:break_scope::vec* __return_param:break_scope::iterator*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 37]\n " color=yellow style=filled]
"end#vec#break_scope#(_ZN11break_scope3vec3endEv).6b3b01431838f66b355b102f485b58be_1" -> "end#vec#break_scope#(_ZN11break_scope3vec3endEv).6b3b01431838f66b355b102f485b58be_3" ;
"end#vec#break_scope#(_ZN11break_scope3vec3endEv).6b3b01431838f66b355b102f485b58be_2" [label="2: Exit break_scope::vec_end \n " color=yellow style=filled]
"end#vec#break_scope#(_ZN11break_scope3vec3endEv).6b3b01431838f66b355b102f485b58be_3" [label="3: Return Stmt \n n$0=*&__return_param:break_scope::iterator* [line 37]\n n$2=*&this:break_scope::vec* [line 37]\n _fun_break_scope::iterator_iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*,n$2:break_scope::vec*,10:int) [line 37]\n _fun_break_scope::iterator_iterator(n$0:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator&) [line 37]\n " shape="box"]
"end#vec#break_scope#(_ZN11break_scope3vec3endEv).6b3b01431838f66b355b102f485b58be_3" -> "end#vec#break_scope#(_ZN11break_scope3vec3endEv).6b3b01431838f66b355b102f485b58be_2" ;
"get#vec#break_scope#(_ZNK11break_scope3vec3getEi).0fc8cabc5147f8e9b56fa4c3a67226e2_1" [label="1: Start break_scope::vec_get\nFormals: this:break_scope::vec* pos:int __return_param:break_scope::X*\nLocals: \n DECLARE_LOCALS(&return); [line 39]\n " color=yellow style=filled]
"get#vec#break_scope#(_ZNK11break_scope3vec3getEi).0fc8cabc5147f8e9b56fa4c3a67226e2_1" -> "get#vec#break_scope#(_ZNK11break_scope3vec3getEi).0fc8cabc5147f8e9b56fa4c3a67226e2_3" ;
"get#vec#break_scope#(_ZNK11break_scope3vec3getEi).0fc8cabc5147f8e9b56fa4c3a67226e2_2" [label="2: Exit break_scope::vec_get \n " color=yellow style=filled]
"get#vec#break_scope#(_ZNK11break_scope3vec3getEi).0fc8cabc5147f8e9b56fa4c3a67226e2_3" [label="3: Return Stmt \n n$0=*&__return_param:break_scope::X* [line 39]\n n$1=*&this:break_scope::vec const * [line 39]\n n$2=*&pos:int [line 39]\n _fun_break_scope::X_X(n$0:break_scope::X*,n$1._data[n$2]:break_scope::X const &) [line 39]\n " shape="box"]
"get#vec#break_scope#(_ZNK11break_scope3vec3getEi).0fc8cabc5147f8e9b56fa4c3a67226e2_3" -> "get#vec#break_scope#(_ZNK11break_scope3vec3getEi).0fc8cabc5147f8e9b56fa4c3a67226e2_2" ;
}
Loading…
Cancel
Save