From e78dc91f34242f84fce0658925a52cd6e31b1771 Mon Sep 17 00:00:00 2001 From: Daiva Naudziuniene Date: Tue, 12 Sep 2017 09:21:05 -0700 Subject: [PATCH] [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 --- infer/src/clang/cTrans.ml | 21 +- infer/src/clang/cTrans_utils.ml | 4 +- .../frontend/destructors/continue_scope.cpp | 115 ++++ .../destructors/continue_scope.cpp.dot | 577 ++++++++++++++++++ 4 files changed, 706 insertions(+), 11 deletions(-) create mode 100644 infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp create mode 100644 infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot diff --git a/infer/src/clang/cTrans.ml b/infer/src/clang/cTrans.ml index 01870c10b..f8277aa22 100644 --- a/infer/src/clang/cTrans.ml +++ b/infer/src/clang/cTrans.ml @@ -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, _) diff --git a/infer/src/clang/cTrans_utils.ml b/infer/src/clang/cTrans_utils.ml index 5fd2d787d..78f8531da 100644 --- a/infer/src/clang/cTrans_utils.ml +++ b/infer/src/clang/cTrans_utils.ml @@ -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) diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp new file mode 100644 index 000000000..a1c20d708 --- /dev/null +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp @@ -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 diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot new file mode 100644 index 000000000..f4014c66b --- /dev/null +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot @@ -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" ; +}