From 29f394160024b8a9f5c6171819ae8c39768c827b Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Tue, 17 Nov 2020 11:58:43 -0800 Subject: [PATCH] [clang] deal with conditionally-destroyed temporaries Summary: This was left as a TODO before: where to place calls to destructors for C++ temporaries that are only conditionally creating when evaluating an expression. This can happen inside the branches of a conditional operation `b?e:f` or in potentially-short-circuited conditions on the righ-hand side of `&&` and `||` operators. Following the compilation scheme of clang (observed by looking at the generated LLVM bitcode), we instrument the program with "marker" variables, so that for instance `X x = true?X():y;` becomes (following the execution on the true branch): ``` marker1 = 0; // initialize all markers to 0 PRUNE(true) // entering true branch X::X(&temporary); // create temporary... marker1 = 1; // ...triggers setting its marker to 1 X::X(&x, &temporary); // finish expression if (marker1) { X::~X(&temporary); // conditionally destroy the temporary } ``` In this diff, you'll find code for: - associating markers to temporaries that need them - code to initialize markers to 0 before full-expressions - code to conditionally destroy temporaries based on the values of the markers once the full-expression has finished evaluating Reviewed By: da319 Differential Revision: D24954070 fbshipit-source-id: cf15df7f7 --- infer/src/IR/Procdesc.ml | 3 + infer/src/IR/Procdesc.mli | 1 + infer/src/clang/cContext.ml | 6 +- infer/src/clang/cContext.mli | 8 +- infer/src/clang/cScope.ml | 63 ++-- infer/src/clang/cScope.mli | 11 +- infer/src/clang/cTrans.ml | 305 ++++++++++++++++-- infer/src/clang/cTrans_utils.ml | 29 +- infer/src/clang/cTrans_utils.mli | 5 +- .../codetoanalyze/cpp/biabduction/issues.exp | 28 +- .../frontend/destructors/break_scope.cpp.dot | 142 ++++---- .../destructors/continue_scope.cpp.dot | 142 ++++---- .../cpp/frontend/loops/foreach1.cpp.dot | 42 +-- .../cpp/pulse/conditional_temporaries.cpp | 132 ++++++++ .../tests/codetoanalyze/cpp/pulse/issues.exp | 3 +- .../conditional/binary_conditional.cpp.dot | 79 +++-- .../constructors/constructor_array.cpp.dot | 38 +-- .../copy_move_constructor.cpp.dot | 86 ++--- .../shared/constructors/temp_object.cpp.dot | 70 ++-- .../cpp/shared/exceptions/Exceptions.cpp.dot | 140 ++++---- .../cpp/shared/lambda/lambda1.cpp.dot | 304 +++++++++-------- .../cpp/shared/methods/byvals.cpp.dot | 28 +- .../methods/conversion_operator.cpp.dot | 74 +++-- .../cpp/shared/methods/return_struct.cpp.dot | 14 +- .../shared/types/inheritance_casts.cpp.dot | 24 +- .../cpp/shared/types/return_struct.cpp.dot | 68 ++-- .../shared/types/struct_pass_by_value.cpp.dot | 16 +- .../objc/autoreleasepool/cost-issues.exp | 2 +- .../objc/autoreleasepool/issues.exp | 2 +- .../objc/frontend/block/retain_cycle.m.dot | 2 +- ...specialized_method_with_block_params.m.dot | 4 +- .../objc/frontend/block/static.m.dot | 4 +- .../objc/frontend/types/attributes.m.dot | 2 +- .../shared/block/Blocks_as_parameters.m.dot | 2 +- .../objc/shared/block/block.m.dot | 4 +- .../objc/shared/block/block_no_args.m.dot | 2 +- .../objc/shared/block/block_release.m.dot | 6 +- .../objc/shared/block/dispatch.m.dot | 4 +- 38 files changed, 1159 insertions(+), 736 deletions(-) create mode 100644 infer/tests/codetoanalyze/cpp/pulse/conditional_temporaries.cpp diff --git a/infer/src/IR/Procdesc.ml b/infer/src/IR/Procdesc.ml index aa7bb792f..a0cb04e7b 100644 --- a/infer/src/IR/Procdesc.ml +++ b/infer/src/IR/Procdesc.ml @@ -70,6 +70,7 @@ module Node = struct | CXXDynamicCast | CXXNewExpr | CXXStdInitializerListExpr + | CXXTemporaryMarkerSet | CXXTypeidExpr | DeclStmt | DefineBody @@ -306,6 +307,8 @@ module Node = struct F.pp_print_string fmt "CXXNewExpr" | CXXStdInitializerListExpr -> F.pp_print_string fmt "CXXStdInitializerListExpr" + | CXXTemporaryMarkerSet -> + F.pp_print_string fmt "CXXTemporaryMarkerSet" | CXXTypeidExpr -> F.pp_print_string fmt "CXXTypeidExpr" | DeclStmt -> diff --git a/infer/src/IR/Procdesc.mli b/infer/src/IR/Procdesc.mli index 9ac4c66df..b9c83fda5 100644 --- a/infer/src/IR/Procdesc.mli +++ b/infer/src/IR/Procdesc.mli @@ -51,6 +51,7 @@ module Node : sig | CXXDynamicCast | CXXNewExpr | CXXStdInitializerListExpr + | CXXTemporaryMarkerSet | CXXTypeidExpr | DeclStmt | DefineBody diff --git a/infer/src/clang/cContext.ml b/infer/src/clang/cContext.ml index f7b61a6a7..5fc853768 100644 --- a/infer/src/clang/cContext.ml +++ b/infer/src/clang/cContext.ml @@ -26,7 +26,8 @@ type t = ; mutable blocks_static_vars: (Pvar.t * Typ.t) list Procname.Map.t ; label_map: str_node_map ; vars_to_destroy: Clang_ast_t.decl list StmtMap.t - ; temporary_names: (Clang_ast_t.pointer, Pvar.t * Typ.t) Hashtbl.t } + ; temporary_names: (Clang_ast_t.pointer, Pvar.t * Typ.t) Hashtbl.t + ; temporaries_constructor_markers: (Pvar.t * Typ.t) Exp.Map.t } let create_context translation_unit_context tenv cfg procdesc immediate_curr_class return_param_typ outer_context vars_to_destroy = @@ -40,7 +41,8 @@ let create_context translation_unit_context tenv cfg procdesc immediate_curr_cla ; blocks_static_vars= Procname.Map.empty ; label_map= Hashtbl.create 17 ; vars_to_destroy - ; temporary_names= Hashtbl.create 0 } + ; temporary_names= Hashtbl.create 0 + ; temporaries_constructor_markers= Exp.Map.empty } let rec is_objc_method context = diff --git a/infer/src/clang/cContext.mli b/infer/src/clang/cContext.mli index 5729abcb0..7f00fdf0a 100644 --- a/infer/src/clang/cContext.mli +++ b/infer/src/clang/cContext.mli @@ -30,7 +30,13 @@ type t = ; vars_to_destroy: Clang_ast_t.decl list StmtMap.t (** mapping from a statement to a list of variables, that go out of scope after the end of the statement *) - ; temporary_names: (Clang_ast_t.pointer, Pvar.t * Typ.t) Caml.Hashtbl.t } + ; temporary_names: (Clang_ast_t.pointer, Pvar.t * Typ.t) Caml.Hashtbl.t + ; temporaries_constructor_markers: (Pvar.t * Typ.t) Exp.Map.t + (** In order to know when to destruct C++ temporaries created in expressions containing + conditionals (e.g. to hold the object created by [X()] in [b?foo(X()):goo()]), we + associate "markers" to each one of them, set to true if and only if the temporary has + been created. This is the map associating each such C++ temporary with its marker + variable. *) } val get_curr_class : t -> curr_class diff --git a/infer/src/clang/cScope.ml b/infer/src/clang/cScope.ml index 44a935fe1..baee0cdcd 100644 --- a/infer/src/clang/cScope.ml +++ b/infer/src/clang/cScope.ml @@ -8,6 +8,9 @@ open! IStd module L = Logging +type var_to_destroy = + {pvar: Pvar.t; typ: Typ.t; qual_type: Clang_ast_t.qual_type; marker: Pvar.t option} + type scope_kind = | Breakable (** loop or switch statement within which it's ok to [break;] *) | Compound (** inside a CompoundStmt *) @@ -216,7 +219,7 @@ module Variables = struct end module CXXTemporaries = struct - let rec visit_stmt_aux context stmt temporaries = + let rec visit_stmt_aux context stmt ~needs_marker temporaries = match (stmt : Clang_ast_t.stmt) with | MaterializeTemporaryExpr ( stmt_info @@ -227,49 +230,57 @@ module CXXTemporaries = struct the reference *) None } ) -> let pvar, typ = CVar_decl.materialize_cpp_temporary context stmt_info expr_info in - L.debug Capture Verbose "+%a@," (Pvar.pp Pp.text) pvar ; - let temporaries = (pvar, typ, expr_info.ei_qual_type) :: temporaries in - visit_stmt_list context stmt_list temporaries - | ExprWithCleanups _ -> - (* huho, we're stepping on someone else's toes (eg, a lambda literal); stop accumulating *) - temporaries - | ConditionalOperator _ - | BinaryOperator (_, _, _, {boi_kind= `LAnd | `LOr | `LT | `GT | `LE | `GE | `EQ | `NE}) -> - (* Do not destroy temporaries created under a conditional operator. This is incorrect but - better than destroying temporaries that are created in only one branch unconditionally - after the conditional. - - Note that destroying the variable inside the branch of the conditional would also be - incorrect since the conditional operator may be only part of the enclosing full - expression. - - Example of tricky case: [foo(x?y:z, w)] or [cond && y] where [y] generates a C++ - temporary. *) - temporaries + L.debug Capture Verbose "+%a:%a@," (Pvar.pp Pp.text) pvar (Typ.pp Pp.text) typ ; + let marker = + if needs_marker then ( + let marker_pvar = + Pvar.mk_tmp "_temp_marker_" (Procdesc.get_proc_name context.CContext.procdesc) + in + L.debug Capture Verbose "Attaching marker %a to %a@," (Pvar.pp Pp.text) marker_pvar + (Pvar.pp Pp.text) pvar ; + Some marker_pvar ) + else None + in + let temporaries = {pvar; typ; qual_type= expr_info.ei_qual_type; marker} :: temporaries in + visit_stmt_list context stmt_list ~needs_marker temporaries + | ConditionalOperator (_, [cond; then_; else_], _) -> + (* temporaries created in branches need instrumentation markers to remember if they have + been created or not during the evaluation of the expression *) + visit_stmt context cond ~needs_marker temporaries + |> visit_stmt context then_ ~needs_marker:true + |> visit_stmt context else_ ~needs_marker:true + | BinaryOperator (_, [lhs; rhs], _, {boi_kind= `LAnd | `LOr}) -> + (* similarly to above, due to possible short-circuiting we are not sure that the RHS of [a + && b] and [a || b] will be executed *) + visit_stmt context lhs ~needs_marker temporaries + |> visit_stmt context rhs ~needs_marker:true | LambdaExpr _ -> (* do not analyze the code of another function *) temporaries + | ExprWithCleanups _ -> + (* huho, we're stepping on someone else's toes (eg, a lambda literal); stop here *) + temporaries | _ -> let _, stmt_list = Clang_ast_proj.get_stmt_tuple stmt in - visit_stmt_list context stmt_list temporaries + visit_stmt_list context stmt_list ~needs_marker temporaries - and visit_stmt context stmt temporaries = + and visit_stmt context stmt ~needs_marker temporaries = L.debug Capture Verbose "<@[%a|@," (Pp.of_string ~f:Clang_ast_proj.get_stmt_kind_string) stmt ; - let r = visit_stmt_aux context stmt temporaries in + let r = visit_stmt_aux context stmt ~needs_marker temporaries in L.debug Capture Verbose "@]@;/%a>" (Pp.of_string ~f:Clang_ast_proj.get_stmt_kind_string) stmt ; r - and visit_stmt_list context stmt_list temporaries = + and visit_stmt_list context stmt_list ~needs_marker temporaries = List.fold stmt_list ~init:temporaries ~f:(fun temporaries stmt -> L.debug Capture Verbose "@;" ; - visit_stmt context stmt temporaries ) + visit_stmt context stmt ~needs_marker temporaries ) let get_destroyable_temporaries context stmt_list = - let temporaries = visit_stmt_list context stmt_list [] in + let temporaries = visit_stmt_list context stmt_list ~needs_marker:false [] in L.debug Capture Verbose "@\n" ; temporaries end diff --git a/infer/src/clang/cScope.mli b/infer/src/clang/cScope.mli index c26187781..919e6a295 100644 --- a/infer/src/clang/cScope.mli +++ b/infer/src/clang/cScope.mli @@ -7,6 +7,14 @@ open! IStd +type var_to_destroy = + { pvar: Pvar.t + ; typ: Typ.t + ; qual_type: Clang_ast_t.qual_type + ; marker: Pvar.t option + (** [Some m] means that creating [pvar] should also set [m] to [1] so that we know whether + [pvar] needs to be destroyed after the current full-expression *) } + val breaks_control_flow : Clang_ast_t.stmt -> bool module Variables : sig @@ -14,6 +22,5 @@ module Variables : sig end module CXXTemporaries : sig - val get_destroyable_temporaries : - CContext.t -> Clang_ast_t.stmt list -> (Pvar.t * Typ.t * Clang_ast_t.qual_type) list + val get_destroyable_temporaries : CContext.t -> Clang_ast_t.stmt list -> var_to_destroy list end diff --git a/infer/src/clang/cTrans.ml b/infer/src/clang/cTrans.ml index 42cadd3fd..439e7070e 100644 --- a/infer/src/clang/cTrans.ml +++ b/infer/src/clang/cTrans.ml @@ -974,7 +974,10 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s { root_nodes ; leaf_nodes ; instrs= res_trans_a.control.instrs @ res_trans_idx.control.instrs - ; initd_exps= res_trans_idx.control.initd_exps @ res_trans_a.control.initd_exps } + ; initd_exps= res_trans_idx.control.initd_exps @ res_trans_a.control.initd_exps + ; cxx_temporary_markers_set= + res_trans_idx.control.cxx_temporary_markers_set + @ res_trans_a.control.cxx_temporary_markers_set } in mk_trans_result (array_exp, typ) control @@ -1528,7 +1531,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s let trans_state_pri = PriorityNode.try_claim_priority_node trans_state stmt_info' in let all_res_trans = L.debug Capture Verbose "Destroying pointer %d@\n" stmt_info.Clang_ast_t.si_pointer ; - List.filter_map vars_to_destroy ~f:(fun (pvar, typ, qual_type) -> + List.filter_map vars_to_destroy ~f:(fun {CScope.pvar; typ; qual_type} -> let exp = Exp.Lvar pvar in let this_res_trans_destruct = mk_trans_result (exp, typ) empty_control in get_destructor_decl_ref qual_type.Clang_ast_t.qt_type_ptr @@ -1567,7 +1570,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s None else let typ = CType_decl.qual_type_to_sil_type context.CContext.tenv qual_type in - Some (pvar, typ, qual_type) + Some {CScope.pvar; typ; qual_type; marker= None} | _ -> assert false ) in @@ -1691,8 +1694,17 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s in res_trans_cond.control.initd_exps @ both_branches_initd_exps in + let cxx_temporary_markers_set = + res_trans_cond.control.cxx_temporary_markers_set + @ res_then_branch.control.cxx_temporary_markers_set + @ res_else_branch.control.cxx_temporary_markers_set + in mk_trans_result return - {root_nodes= res_trans_cond.control.root_nodes; leaf_nodes= [join_node]; instrs; initd_exps} + { root_nodes= res_trans_cond.control.root_nodes + ; leaf_nodes= [join_node] + ; instrs + ; initd_exps + ; cxx_temporary_markers_set } (** The GNU extension to the conditional operator which allows the middle operand to be omitted. *) @@ -1821,7 +1833,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s { root_nodes= root_nodes_to_parent ; leaf_nodes= prune_to_short_c @ res_trans_s2.control.leaf_nodes ; instrs= res_trans_s1.control.instrs @ res_trans_s2.control.instrs - ; initd_exps= [] } + ; initd_exps= [] + ; cxx_temporary_markers_set= [] } in L.debug Capture Verbose "Translating Condition for If-then-else/Loop/Conditional Operator@\n" ; let open Clang_ast_t in @@ -2604,12 +2617,12 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s | (VarDecl (_, _, qt, vdi) as var_decl) :: var_decls' -> (* Var are defined when procdesc is created, here we only take care of initialization *) let res_trans_tl = aux var_decls' in - let root_nodes_tl, instrs_tl, initd_exps_tl = + let root_nodes_tl, instrs_tl, initd_exps_tl, markers_tl = match res_trans_tl with | None -> - (next_nodes, [], []) - | Some {control= {root_nodes; instrs; initd_exps}} -> - (root_nodes, instrs, initd_exps) + (next_nodes, [], [], []) + | Some {control= {root_nodes; instrs; initd_exps; cxx_temporary_markers_set}} -> + (root_nodes, instrs, initd_exps, cxx_temporary_markers_set) in let res_trans_tmp = do_var_dec var_decl qt vdi root_nodes_tl in L.debug Capture Verbose "res_trans_tmp.control=%a@\n" pp_control res_trans_tmp.control ; @@ -2626,7 +2639,9 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s { root_nodes= res_trans_tmp.control.root_nodes ; leaf_nodes ; instrs= res_trans_tmp.control.instrs @ instrs_tl - ; initd_exps= res_trans_tmp.control.initd_exps @ initd_exps_tl }) + ; initd_exps= res_trans_tmp.control.initd_exps @ initd_exps_tl + ; cxx_temporary_markers_set= + res_trans_tmp.control.cxx_temporary_markers_set @ markers_tl }) | _ :: var_decls' -> (* Here we can get also record declarations or typedef declarations, which are dealt with somewhere else. We just handle the variables here. *) @@ -3811,26 +3826,214 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s stmt_info + and add_cxx_temporaries_dtor_calls destr_kind expr_trans_result trans_state stmt_info temporaries + = + (* The source location of destructor should reflect the end of the statement *) + let _, sloc2 = stmt_info.Clang_ast_t.si_source_range in + let stmt_info = {stmt_info with Clang_ast_t.si_source_range= (sloc2, sloc2)} in + (* ReturnStmt claims a priority with the same [stmt_info]. + New pointer is generated to avoid premature node creation *) + let sil_loc = + CLocation.location_of_stmt_info trans_state.context.translation_unit_context.source_file + stmt_info + in + let dtor_call stmt_info trans_state destructor_decl_ref (temporary : CScope.var_to_destroy) = + L.debug Capture Verbose "Destroying pointer %d@\n" stmt_info.Clang_ast_t.si_pointer ; + let exp = Exp.Lvar temporary.pvar in + let this_res_trans_destruct = mk_trans_result (exp, temporary.typ) empty_control in + cxx_destructor_call_trans trans_state stmt_info this_res_trans_destruct destructor_decl_ref + ~is_injected_destructor:true ~is_inner_destructor:false + in + (* call the destructor for the given temporary, return [(created_conditional, trans_result)] + where [created_conditional] is true when we needed to create new nodes to conditionally + destroy the temporary (hence the next instruction should also create its own new node to + place before that) *) + let destroy_one stmt_info trans_state (temporary : CScope.var_to_destroy) = + L.debug Capture Verbose "destructing %a, trans_state=%a" (Pvar.pp Pp.text_break) + temporary.pvar pp_trans_state trans_state ; + let open IOption.Let_syntax in + let+ dtor_decl_ref = get_destructor_decl_ref temporary.qual_type.qt_type_ptr in + match temporary.marker with + | None -> + (* simple case: no marker instrumentation: unconditionally destroy the temporary variable + now *) + (false, dtor_call stmt_info trans_state dtor_decl_ref temporary) + | Some marker_var -> + (* generate [if marker_var then destroy_temporary() ;], i.e.: + + - a prune node [prune_true] for the case where [marker_var] is true + + - a prune node [prune_false] for the case where [marker_var] is false + + - a node [dtor_trans_result] for actually calling the destructor, the successor of + [prune_true] + + - [join_node] to join [dtor_trans_result] and [prune_false] and continue with the + successor node(s) of the translation [trans_state.succ_nodes] *) + let proc_desc = trans_state.context.procdesc in + let join_node = Procdesc.create_node proc_desc sil_loc Procdesc.Node.Join_node [] in + Procdesc.node_set_succs proc_desc join_node ~normal:trans_state.succ_nodes ~exn:[] ; + (* create dtor call as a new node connected to the join node, force new node creation by + creating a fresh pointer and calling [force_claim_priority_node] *) + let dtor_trans_result = + let stmt_info = + {stmt_info with Clang_ast_t.si_pointer= CAst_utils.get_fresh_pointer ()} + in + let dtor_trans_state = + let trans_state = PriorityNode.force_claim_priority_node trans_state stmt_info in + {trans_state with succ_nodes= [join_node]} + in + dtor_call stmt_info dtor_trans_state dtor_decl_ref temporary + |> PriorityNode.compute_result_to_parent dtor_trans_state sil_loc + ~node_name:(Destruction destr_kind) stmt_info + in + (* create prune nodes *) + let marker_id = Ident.create_fresh Ident.knormal in + let deref_marker_var = + [ Sil.Load + { id= marker_id + ; e= Lvar marker_var + ; root_typ= StdTyp.boolean + ; typ= StdTyp.boolean + ; loc= sil_loc } ] + in + let prune_true = + create_prune_node proc_desc ~branch:true ~negate_cond:false (Var marker_id) + deref_marker_var sil_loc Ik_if + in + let prune_false = + create_prune_node proc_desc ~branch:false ~negate_cond:true (Var marker_id) + deref_marker_var sil_loc Ik_if + in + Procdesc.node_set_succs proc_desc prune_false ~normal:[join_node] ~exn:[] ; + Procdesc.node_set_succs proc_desc prune_true ~normal:dtor_trans_result.control.root_nodes + ~exn:[] ; + let trans_result = + let control = + {empty_control with root_nodes= [prune_true; prune_false]; leaf_nodes= [join_node]} + in + mk_trans_result (Var marker_id, StdTyp.boolean) control + in + (true, trans_result) + in + let rec destroy_all stmt_info trans_results_acc trans_state = function + | [] -> + trans_results_acc + | temporary :: temporaries -> ( + match destroy_one stmt_info trans_state temporary with + | None -> + destroy_all stmt_info trans_results_acc trans_state temporaries + | Some (new_node_created, trans_result) -> + let stmt_info, trans_state = + if new_node_created then + (* force the creation of another new node so that it can be placed *before* (in CFG + order) the translation of the previous temporary destruction *) + let stmt_info = + {stmt_info with Clang_ast_t.si_pointer= CAst_utils.get_fresh_pointer ()} + in + (stmt_info, PriorityNode.force_claim_priority_node trans_state stmt_info) + else (stmt_info, trans_state) + in + destroy_all stmt_info (trans_result :: trans_results_acc) trans_state temporaries ) + in + L.debug Capture Verbose "Destroying [%a] in state %a@\n" + (Pp.seq ~sep:";" (fun fmt (temporary : CScope.var_to_destroy) -> + Format.fprintf fmt "(%a,%a)" (Pvar.pp Pp.text_break) temporary.pvar + (Pp.option (Pvar.pp Pp.text_break)) + temporary.marker )) + temporaries pp_trans_state trans_state ; + match destroy_all stmt_info [] trans_state (List.rev temporaries) with + | [] -> + expr_trans_result + | _ :: _ as destr_trans_results -> + (* wire [destr_trans_result] after [expr_trans_result] in CFG order *) + PriorityNode.compute_results_to_parent trans_state sil_loc + ~node_name:(Destruction destr_kind) stmt_info ~return:expr_trans_result.return + (expr_trans_result :: destr_trans_results) + + and exprWithCleanups_trans trans_state stmt_info stmt_list = + L.debug Capture Verbose "ExprWithCleanups trans_state={succ_nodes=[%a]}@." + (Pp.seq Procdesc.Node.pp) trans_state.succ_nodes ; + let loc = + CLocation.location_of_stmt_info trans_state.context.translation_unit_context.source_file + stmt_info + in let temporaries_to_destroy = CScope.CXXTemporaries.get_destroyable_temporaries trans_state.context stmt_list in - let destr_trans_result_opt = - destructor_calls Procdesc.Node.DestrTemporariesCleanup trans_state stmt_info - temporaries_to_destroy - in let[@warning "-8"] [stmt] = stmt_list in - let result = instruction trans_state stmt in - match destr_trans_result_opt with - | None -> - result - | Some destr_trans_result -> - let sil_loc = - CLocation.location_of_stmt_info trans_state.context.translation_unit_context.source_file + let temporaries_constructor_markers = + List.fold temporaries_to_destroy ~init:trans_state.context.temporaries_constructor_markers + ~f:(fun markers {CScope.pvar; typ; marker} -> + match marker with + | None -> + markers + | Some marker_pvar -> + Exp.Map.add (Lvar pvar) (marker_pvar, typ) markers ) + in + (* translate the sub-expression in its own node(s) so we can inject code for managing + conditional destructor markers before and after its nodes *) + let trans_state = + PriorityNode.force_claim_priority_node + {trans_state with context= {trans_state.context with temporaries_constructor_markers}} + stmt_info + in + let sub_expr_result = instruction trans_state stmt in + let init_markers_to_zero_instrs = + List.fold temporaries_to_destroy ~init:[] ~f:(fun instrs {CScope.marker} -> + match marker with + | None -> + instrs + | Some marker_pvar -> + Sil.Metadata (VariableLifetimeBegins (marker_pvar, StdTyp.boolean, loc)) + :: Sil.Store + { e1= Lvar marker_pvar + ; e2= Exp.zero + ; typ= StdTyp.boolean + ; loc + ; root_typ= StdTyp.boolean } + :: instrs ) + in + let markers_var_data = + List.fold temporaries_to_destroy ~init:[] ~f:(fun vds {CScope.marker} -> + match marker with + | None -> + vds + | Some marker_pvar -> + { ProcAttributes.name= Pvar.get_name marker_pvar + ; typ= StdTyp.boolean + ; modify_in_block= false + ; is_constexpr= false + ; is_declared_unused= false } + :: vds ) + in + Procdesc.append_locals trans_state.context.procdesc markers_var_data ; + let init_then_sub_expr_result = + if List.is_empty init_markers_to_zero_instrs then sub_expr_result + else + (* another new node so the initialization of markers really happens before the current node + *) + let stmt_info = {stmt_info with Clang_ast_t.si_pointer= CAst_utils.get_fresh_pointer ()} in + let trans_state = PriorityNode.force_claim_priority_node trans_state stmt_info in + let markers_init_result = + PriorityNode.compute_result_to_parent trans_state loc ~node_name:ExprWithCleanups stmt_info + (mk_trans_result (Exp.zero, StdTyp.boolean) + {empty_control with instrs= init_markers_to_zero_instrs}) in - PriorityNode.compute_results_to_parent trans_state sil_loc ~node_name:ExprWithCleanups - stmt_info ~return:result.return [result; destr_trans_result] + PriorityNode.compute_results_to_parent trans_state loc ~node_name:ExprWithCleanups stmt_info + ~return:sub_expr_result.return + [markers_init_result; sub_expr_result] + in + let result = + add_cxx_temporaries_dtor_calls Procdesc.Node.DestrTemporariesCleanup init_then_sub_expr_result + trans_state stmt_info temporaries_to_destroy + in + if List.is_empty result.control.cxx_temporary_markers_set then result + else + (* we know that there cannot be nested ExprWithCleanups so it's safe to remove all markers *) + {result with control= {result.control with cxx_temporary_markers_set= []}} (* Expect that this doesn't happen *) @@ -3931,7 +4134,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s | Some {control= {root_nodes}} -> {trans_state with succ_nodes= root_nodes} in - let stmt_result = instruction_translate trans_state stmt in + let stmt_result = instruction_insert_cxx_temporary_markers trans_state stmt in match destr_trans_result with | None | Some {control= {leaf_nodes= []}} -> stmt_result @@ -3939,6 +4142,51 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s {stmt_result with control= {stmt_result.control with leaf_nodes}} + (** Instrument program to know when C++ temporaries created conditionally have indeed been created + and need to be destroyed. This is a common compilation scheme for temporary variables created + conditionally in expressions, due to either [a?b:c] or short-circuiting of [&&] or [||]. *) + and instruction_insert_cxx_temporary_markers trans_state stmt = + let stmt_result = instruction_translate trans_state stmt in + let stmt_info, _ = Clang_ast_proj.get_stmt_tuple stmt in + let loc = + CLocation.location_of_stmt_info trans_state.context.translation_unit_context.source_file + stmt_info + in + let instrs, cxx_temporary_markers_set = + List.fold stmt_result.control.initd_exps + ~init:([], stmt_result.control.cxx_temporary_markers_set) + ~f:(fun ((instrs, markers_set) as acc) initd_exp -> + match Exp.Map.find_opt initd_exp trans_state.context.temporaries_constructor_markers with + | Some (marker_var, _) + when not + (List.mem ~equal:Pvar.equal stmt_result.control.cxx_temporary_markers_set + marker_var) -> + (* to avoid adding the marker-setting instruction for every super-expression of the + current one, add it to the list of marker variables set and do not create the + instruction if it's already in that list *) + let store_marker = + Sil.Store + { e1= Lvar marker_var + ; root_typ= StdTyp.boolean + ; typ= StdTyp.boolean + ; e2= Exp.one + ; loc } + in + (store_marker :: instrs, marker_var :: markers_set) + | _ -> + acc ) + in + if List.is_empty instrs then stmt_result + else + let control = + PriorityNode.compute_controls_to_parent trans_state loc ~node_name:CXXTemporaryMarkerSet + stmt_info + [stmt_result.control; {empty_control with instrs}] + in + let control = {control with cxx_temporary_markers_set} in + {stmt_result with control} + + and instruction_translate trans_state (instr : Clang_ast_t.stmt) = match instr with | GotoStmt (stmt_info, _, {Clang_ast_t.gsi_label= label_name; _}) -> @@ -4358,16 +4606,15 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s ; leaf_nodes= res_trans_s.control.leaf_nodes ; instrs= List.rev_append res_trans_s.control.instrs control_tail_rev.instrs ; initd_exps= List.rev_append res_trans_s.control.initd_exps control_tail_rev.initd_exps - } + ; cxx_temporary_markers_set= + List.rev_append res_trans_s.control.cxx_temporary_markers_set + control_tail_rev.cxx_temporary_markers_set } , res_trans_s.return :: returns_tail_rev ) in let rev_control, rev_returns = exec_trans_instrs_rev trans_state (List.rev trans_stmt_fun_list) in - ( { rev_control with - instrs= List.rev rev_control.instrs - ; initd_exps= List.rev rev_control.initd_exps } - , List.rev rev_returns ) + ({rev_control with instrs= List.rev rev_control.instrs}, List.rev rev_returns) and get_clang_stmt_trans node_name stmt trans_state = diff --git a/infer/src/clang/cTrans_utils.ml b/infer/src/clang/cTrans_utils.ml index 348513261..c0a9ef738 100644 --- a/infer/src/clang/cTrans_utils.ml +++ b/infer/src/clang/cTrans_utils.ml @@ -190,16 +190,24 @@ type control = { root_nodes: Procdesc.Node.t list ; leaf_nodes: Procdesc.Node.t list ; instrs: Sil.instr list - ; initd_exps: Exp.t list } + ; initd_exps: Exp.t list + ; cxx_temporary_markers_set: Pvar.t list } -let pp_control fmt {root_nodes; leaf_nodes; instrs; initd_exps} = - F.fprintf fmt "@[{root_nodes=[%a];@;leaf_nodes=[%a];@;instrs=[%a];@;initd_exps=[%a]}@]" +let pp_control fmt {root_nodes; leaf_nodes; instrs; initd_exps; cxx_temporary_markers_set} = + let pp_cxx_temporary_markers_set fmt = + if List.is_empty cxx_temporary_markers_set then () + else + F.fprintf fmt ";@;cxx_temporary_markers_set=[%a]" + (Pp.seq ~sep:";" (Pvar.pp Pp.text)) + cxx_temporary_markers_set + in + F.fprintf fmt "@[{root_nodes=[%a];@;leaf_nodes=[%a];@;instrs=[%a];@;initd_exps=[%a]%t}@]" (Pp.seq ~sep:";" Procdesc.Node.pp) root_nodes (Pp.seq ~sep:";" Procdesc.Node.pp) leaf_nodes (Pp.seq ~sep:";" (Sil.pp_instr ~print_types:false Pp.text_break)) - instrs (Pp.seq ~sep:";" Exp.pp) initd_exps + instrs (Pp.seq ~sep:";" Exp.pp) initd_exps pp_cxx_temporary_markers_set type trans_result = @@ -208,7 +216,9 @@ type trans_result = ; method_name: Procname.t option ; is_cpp_call_virtual: bool } -let empty_control = {root_nodes= []; leaf_nodes= []; instrs= []; initd_exps= []} +let empty_control = + {root_nodes= []; leaf_nodes= []; instrs= []; initd_exps= []; cxx_temporary_markers_set= []} + let mk_trans_result ?method_name ?(is_cpp_call_virtual = false) return control = {control; return; method_name; is_cpp_call_virtual} @@ -218,7 +228,8 @@ let undefined_expression () = Exp.Var (Ident.create_fresh Ident.knormal) (** Collect the results of translating a list of instructions, and link up the nodes created. *) let collect_controls pdesc l = - let collect_one result_rev {root_nodes; leaf_nodes; instrs; initd_exps} = + let collect_one result_rev {root_nodes; leaf_nodes; instrs; initd_exps; cxx_temporary_markers_set} + = if not (List.is_empty root_nodes) then List.iter ~f:(fun n -> Procdesc.node_set_succs pdesc n ~normal:root_nodes ~exn:[]) @@ -230,10 +241,12 @@ let collect_controls pdesc l = { root_nodes ; leaf_nodes ; instrs= List.rev_append instrs result_rev.instrs - ; initd_exps= List.rev_append initd_exps result_rev.initd_exps } + ; initd_exps= List.rev_append initd_exps result_rev.initd_exps + ; cxx_temporary_markers_set= + List.rev_append cxx_temporary_markers_set result_rev.cxx_temporary_markers_set } in let rev_result = List.fold l ~init:empty_control ~f:collect_one in - {rev_result with instrs= List.rev rev_result.instrs; initd_exps= List.rev rev_result.initd_exps} + {rev_result with instrs= List.rev rev_result.instrs} let collect_trans_results pdesc ~return trans_results = diff --git a/infer/src/clang/cTrans_utils.mli b/infer/src/clang/cTrans_utils.mli index 40066765e..b97d34d23 100644 --- a/infer/src/clang/cTrans_utils.mli +++ b/infer/src/clang/cTrans_utils.mli @@ -56,7 +56,10 @@ type control = ; instrs: Sil.instr list (** Instructions that need to be placed in the current CFG node being constructed, *after* [leaf_nodes]. *) - ; initd_exps: Exp.t list (** list of expressions that are initialized by the instructions *) } + ; initd_exps: Exp.t list (** list of expressions that are initialized by the instructions *) + ; cxx_temporary_markers_set: Pvar.t list + (** markers for C++ temporaries that have been set during the translation; used to avoid + adding the same marker several times *) } val pp_control : F.formatter -> control -> unit diff --git a/infer/tests/codetoanalyze/cpp/biabduction/issues.exp b/infer/tests/codetoanalyze/cpp/biabduction/issues.exp index 13d848aa2..d184172aa 100644 --- a/infer/tests/codetoanalyze/cpp/biabduction/issues.exp +++ b/infer/tests/codetoanalyze/cpp/biabduction/issues.exp @@ -44,9 +44,9 @@ codetoanalyze/cpp/biabduction/models/cmp.cpp, std_less_equal_bad, 4, NULL_DEREFE codetoanalyze/cpp/biabduction/models/cmp.cpp, std_not_equal_to_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure std_not_equal_to_bad(),Condition is false,Taking true branch] codetoanalyze/cpp/biabduction/models/move.cpp, move::div0_moved_from, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_from(),start of procedure X,return from a call to move::X::X,start of procedure X,return from a call to move::X::X] codetoanalyze/cpp/biabduction/models/move.cpp, move::div0_moved_to, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure move::div0_moved_to(),start of procedure X,return from a call to move::X::X,start of procedure X,return from a call to move::X::X] -codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null0_bad_FN, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null0_bad_FN(),start of procedure pair::pairOfZeroNull(),return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] -codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null1_bad, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null1_bad(),start of procedure pair::pairOfZeroNull(),return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] -codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null_guard_ok_FP, 4, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null_guard_ok_FP(),start of procedure pair::pairOfZeroNull(),return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation,Taking true branch] +codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null0_bad_FN, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null0_bad_FN(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] +codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null1_bad, 3, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null1_bad(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation] +codetoanalyze/cpp/biabduction/models/pair.cpp, pair::deref_pair_null_guard_ok_FP, 4, DANGLING_POINTER_DEREFERENCE, no_bucket, ERROR, [start of procedure pair::deref_pair_null_guard_ok_FP(),start of procedure pair::pairOfZeroNull(),Skipping ~pair: method has no implementation,return from a call to pair::pairOfZeroNull,Skipping ~pair: method has no implementation,Taking true branch] codetoanalyze/cpp/biabduction/models/swap.cpp, swap_null_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure swap_null_bad()] codetoanalyze/cpp/biabduction/models/throw_wrapper.cpp, nothrow_if_null_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure nothrow_if_null_bad(),start of procedure get_null(),return from a call to get_null,Taking true branch,start of procedure do_nothing(),return from a call to do_nothing] codetoanalyze/cpp/biabduction/mutex/std_mutex.cpp, ends_locked, 3, Cannot_star, no_bucket, ERROR, [start of procedure ends_locked(),Loop condition is true. Entering loop body,start of procedure ensure_unlocked(),start of procedure ensure_locked(),Skipping try_lock: method has no implementation,return from a call to ensure_locked,Skipping unlock: method has no implementation,return from a call to ensure_unlocked] @@ -58,12 +58,12 @@ codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_null_metho codetoanalyze/cpp/biabduction/npe/boxed_ptr.cpp, boxed_ptr::smart_ptr_result_method_null_deref, 4, NULL_DEREFERENCE, B5, ERROR, [start of procedure boxed_ptr::smart_ptr_result_method_null_deref(),start of procedure SmartPtr,return from a call to boxed_ptr::SmartPtr::SmartPtr,start of procedure X,return from a call to boxed_ptr::X::X,start of procedure get,return from a call to boxed_ptr::SmartPtr::get,start of procedure getNull,return from a call to boxed_ptr::X::getNull] codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is false,return from a call to cancellation_test::is_size_zero,Taking true branch] codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is false,return from a call to cancellation_test::is_size_zero,Taking true branch] -codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] -codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_nonzero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_nonzero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is false,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref2_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is true,return from a call to cancellation_test::is_size_zero,Taking true branch] codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_bad(),start of procedure cancellation_test::is_size_zero(),start of procedure begin,return from a call to cancellation_test::Test::begin,start of procedure end,return from a call to cancellation_test::Test::end,Condition is true,return from a call to cancellation_test::is_size_zero,Taking true branch] -codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] -codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter2_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter2_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] +codetoanalyze/cpp/biabduction/npe/cancellation.cpp, cancellation_test::size_zero_deref_iter_bad, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure cancellation_test::size_zero_deref_iter_bad(),start of procedure cancellation_test::is_size_zero_iter(),start of procedure begin_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::begin_iter,start of procedure end_iter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,start of procedure TestIter,return from a call to cancellation_test::TestIter::TestIter,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::Test::end_iter,start of procedure cancellation_test::operator==(),Condition is true,return from a call to cancellation_test::operator==,Skipping ~TestIter: method has no implementation,return from a call to cancellation_test::is_size_zero_iter,Taking true branch] codetoanalyze/cpp/biabduction/npe/npe_added_to_b1.cpp, npe_added_to_b1::causes_npe_person_bad, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure npe_added_to_b1::causes_npe_person_bad(),start of procedure Person,return from a call to npe_added_to_b1::Person::Person,start of procedure npe_added_to_b1::deref_person()] codetoanalyze/cpp/biabduction/npe/null_returned_by_method.cpp, testNullDeref, 3, NULL_DEREFERENCE, B2, ERROR, [start of procedure testNullDeref(),Taking true branch,start of procedure getNull,return from a call to XFactory::getNull] codetoanalyze/cpp/biabduction/npe/object_deref.cpp, object_deref::derefNullField, 2, NULL_DEREFERENCE, B1, ERROR, [start of procedure object_deref::derefNullField(),start of procedure object_deref::getNull(),return from a call to object_deref::getNull] @@ -195,12 +195,12 @@ codetoanalyze/cpp/shared/constructors/constructor_with_body.cpp, constructor_wit codetoanalyze/cpp/shared/constructors/copy_array_field.cpp, copy_array_field::npe, 4, NULL_DEREFERENCE, B1, ERROR, [start of procedure copy_array_field::npe(),start of procedure X,return from a call to copy_array_field::X::X,start of procedure X,return from a call to copy_array_field::X::X] codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyX_div0, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure copy_move_constructor::copyX_div0(),start of procedure X,return from a call to copy_move_constructor::X::X,start of procedure X,return from a call to copy_move_constructor::X::X] codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::copyY_div0, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure copy_move_constructor::copyY_div0(),start of procedure Y,return from a call to copy_move_constructor::Y::Y,start of procedure Y,return from a call to copy_move_constructor::Y::Y] -codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveX_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure copy_move_constructor::moveX_div0(),start of procedure copy_move_constructor::getX(),start of procedure X,return from a call to copy_move_constructor::X::X,start of procedure X,return from a call to copy_move_constructor::X::X,Skipping ~X: method has no implementation,return from a call to copy_move_constructor::getX] -codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure copy_move_constructor::moveY_div0(),start of procedure copy_move_constructor::getY(),start of procedure Y,return from a call to copy_move_constructor::Y::Y,start of procedure Y,return from a call to copy_move_constructor::Y::Y,Skipping ~Y: method has no implementation,return from a call to copy_move_constructor::getY] +codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveX_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure copy_move_constructor::moveX_div0(),start of procedure copy_move_constructor::getX(),start of procedure X,return from a call to copy_move_constructor::X::X,start of procedure X,return from a call to copy_move_constructor::X::X,Skipping ~X: method has no implementation,return from a call to copy_move_constructor::getX,Skipping ~X: method has no implementation] +codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure copy_move_constructor::moveY_div0(),start of procedure copy_move_constructor::getY(),start of procedure Y,return from a call to copy_move_constructor::Y::Y,start of procedure Y,return from a call to copy_move_constructor::Y::Y,Skipping ~Y: method has no implementation,return from a call to copy_move_constructor::getY,Skipping ~Y: method has no implementation] codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp, copy_move_constructor::moveY_moveY_copyY_div0, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure copy_move_constructor::moveY_moveY_copyY_div0(),start of procedure copy_move_constructor::getY(),start of procedure Y,return from a call to copy_move_constructor::Y::Y,start of procedure Y,return from a call to copy_move_constructor::Y::Y,Skipping ~Y: method has no implementation,return from a call to copy_move_constructor::getY,start of procedure Y,return from a call to copy_move_constructor::Y::Y,Skipping ~Y: method has no implementation,start of procedure Y,return from a call to copy_move_constructor::Y::Y] codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::assign_temp_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::assign_temp_div0(),start of procedure X,return from a call to temp_object::X::X,start of procedure X,return from a call to temp_object::X::X,Skipping ~X: method has no implementation,start of procedure div] -codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::getX_field_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::getX_field_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X::X,start of procedure X,return from a call to temp_object::X::X,return from a call to temp_object::getX,start of procedure temp_object::div()] -codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::getX_method_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::getX_method_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X::X,start of procedure X,return from a call to temp_object::X::X,return from a call to temp_object::getX,start of procedure div] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::getX_field_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::getX_field_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X::X,start of procedure X,return from a call to temp_object::X::X,Skipping ~X: method has no implementation,return from a call to temp_object::getX,start of procedure temp_object::div()] +codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::getX_method_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::getX_method_div0(),start of procedure temp_object::getX(),start of procedure X,return from a call to temp_object::X::X,start of procedure X,return from a call to temp_object::X::X,Skipping ~X: method has no implementation,return from a call to temp_object::getX,start of procedure div] codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::temp_field2_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::temp_field2_div0(),start of procedure X,return from a call to temp_object::X::X,start of procedure temp_object::div()] codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::temp_field_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::temp_field_div0(),start of procedure X,return from a call to temp_object::X::X,start of procedure temp_object::div()] codetoanalyze/cpp/shared/constructors/temp_object.cpp, temp_object::temp_method_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure temp_object::temp_method_div0(),start of procedure X,return from a call to temp_object::X::X,start of procedure div] @@ -209,7 +209,7 @@ codetoanalyze/cpp/shared/lambda/lambda1.cpp, bar, 5, DIVIDE_BY_ZERO, no_bucket, codetoanalyze/cpp/shared/lambda/lambda1.cpp, foo, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure foo(),start of procedure ,return from a call to foo::lambda_shared_lambda_lambda1.cpp:17:17::,Skipping ~: method has no implementation,start of procedure ,return from a call to foo::lambda_shared_lambda_lambda1.cpp:18:12::,Skipping ~: method has no implementation,start of procedure operator(),return from a call to foo::lambda_shared_lambda_lambda1.cpp:18:12::operator()] codetoanalyze/cpp/shared/lambda/lambda1.cpp, foo::lambda_shared_lambda_lambda1.cpp:17:17::operator(), 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure operator()] codetoanalyze/cpp/shared/methods/conversion_operator.cpp, conversion_operator::branch_div0, 4, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure conversion_operator::branch_div0(),start of procedure X,return from a call to conversion_operator::X::X,start of procedure operator_bool,return from a call to conversion_operator::X::operator_bool,Taking true branch,start of procedure operator_int,return from a call to conversion_operator::X::operator_int] -codetoanalyze/cpp/shared/methods/conversion_operator.cpp, conversion_operator::y_branch_div0, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure conversion_operator::y_branch_div0(),start of procedure Y,return from a call to conversion_operator::Y::Y,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure X,return from a call to conversion_operator::X::X,return from a call to conversion_operator::Y::operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure operator_bool,return from a call to conversion_operator::X::operator_bool,Taking true branch,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure X,return from a call to conversion_operator::X::X,return from a call to conversion_operator::Y::operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure operator_int,return from a call to conversion_operator::X::operator_int,Skipping ~X: method has no implementation] +codetoanalyze/cpp/shared/methods/conversion_operator.cpp, conversion_operator::y_branch_div0, 6, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure conversion_operator::y_branch_div0(),start of procedure Y,return from a call to conversion_operator::Y::Y,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure X,return from a call to conversion_operator::X::X,Skipping ~X: method has no implementation,return from a call to conversion_operator::Y::operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure operator_bool,return from a call to conversion_operator::X::operator_bool,Taking true branch,start of procedure operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure X,return from a call to conversion_operator::X::X,Skipping ~X: method has no implementation,return from a call to conversion_operator::Y::operator_X,start of procedure X,return from a call to conversion_operator::X::X,start of procedure operator_int,return from a call to conversion_operator::X::operator_int,Skipping ~X: method has no implementation] codetoanalyze/cpp/shared/methods/static.cpp, div0_class, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0_class(),start of procedure fun] codetoanalyze/cpp/shared/methods/static.cpp, div0_instance, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0_instance(),start of procedure fun] codetoanalyze/cpp/shared/methods/virtual_methods.cpp, poly_area, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure poly_area(),start of procedure Polygon,return from a call to Polygon::Polygon,start of procedure area,return from a call to Polygon::area] @@ -297,7 +297,7 @@ codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_method, 3, DIVIDE_BY_ codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_method_op, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0_method_op(),start of procedure operator[],return from a call to X::operator[]] codetoanalyze/cpp/shared/types/operator_overload.cpp, div0_method_op_ptr, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure div0_method_op_ptr(),start of procedure operator[],return from a call to X::operator[]] codetoanalyze/cpp/shared/types/return_struct.cpp, return_struct::get_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure return_struct::get_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X::X,start of procedure X,return from a call to return_struct::X::X,Skipping ~X: method has no implementation,return from a call to return_struct::get,start of procedure X,return from a call to return_struct::X::X,Skipping ~X: method has no implementation] -codetoanalyze/cpp/shared/types/return_struct.cpp, return_struct::get_field_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure return_struct::get_field_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X::X,start of procedure X,return from a call to return_struct::X::X,Skipping ~X: method has no implementation,return from a call to return_struct::get,Skipping ~X: method has no implementation,start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X::X,start of procedure X,return from a call to return_struct::X::X,Skipping ~X: method has no implementation,return from a call to return_struct::get] +codetoanalyze/cpp/shared/types/return_struct.cpp, return_struct::get_field_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure return_struct::get_field_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X::X,start of procedure X,return from a call to return_struct::X::X,Skipping ~X: method has no implementation,return from a call to return_struct::get,Skipping ~X: method has no implementation,start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X::X,start of procedure X,return from a call to return_struct::X::X,Skipping ~X: method has no implementation,return from a call to return_struct::get,Skipping ~X: method has no implementation] codetoanalyze/cpp/shared/types/return_struct.cpp, return_struct::get_method_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure return_struct::get_method_div0(),start of procedure return_struct::get(),start of procedure X,return from a call to return_struct::X::X,start of procedure X,return from a call to return_struct::X::X,Skipping ~X: method has no implementation,return from a call to return_struct::get,start of procedure div] codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_Y_div0, 7, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_forward_declare::X_Y_div0(),start of procedure X,return from a call to struct_forward_declare::X::X,Taking false branch,start of procedure getF,return from a call to struct_forward_declare::X::getF] codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::X_div0, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_forward_declare::X_div0(),start of procedure X,return from a call to struct_forward_declare::X::X,start of procedure getF,return from a call to struct_forward_declare::X::getF] @@ -306,5 +306,5 @@ codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declar codetoanalyze/cpp/shared/types/struct_forward_declare.cpp, struct_forward_declare::Z_ptr_div0, 5, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_forward_declare::Z_ptr_div0(),start of procedure getF,return from a call to struct_forward_declare::Z::getF] codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::field_div0, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_pass_by_value::field_div0(),start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure Y,start of procedure X,return from a call to struct_pass_by_value::X::X,return from a call to struct_pass_by_value::Y::Y,start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::param_get_copied_div0, 3, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_pass_by_value::param_get_copied_div0(),start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure struct_pass_by_value::set_f(),return from a call to struct_pass_by_value::set_f] -codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::temp_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_pass_by_value::temp_div0(),start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] +codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::temp_div0, 0, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_pass_by_value::temp_div0(),start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f,Skipping ~X: method has no implementation] codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp, struct_pass_by_value::var_div0, 2, DIVIDE_BY_ZERO, no_bucket, ERROR, [start of procedure struct_pass_by_value::var_div0(),start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure X,return from a call to struct_pass_by_value::X::X,start of procedure struct_pass_by_value::get_f(),return from a call to struct_pass_by_value::get_f] diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot index 372ab7ca8..5198f2554 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot @@ -65,7 +65,7 @@ digraph cfg { "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_16" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_4" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_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$9:break_scope::iterator 0$?%__sil_tmp__temp_return_n$19:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$22:break_scope::iterator const x1:break_scope::X vector:break_scope::vec \n " color=yellow style=filled] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_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$9:break_scope::iterator 0$?%__sil_tmp__temp_return_n$18:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$21:break_scope::iterator const x1:break_scope::X vector:break_scope::vec \n " color=yellow style=filled] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_1" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_20" ; @@ -88,37 +88,37 @@ digraph cfg { "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_6" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_11" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator); [line 57, column 22]\n _=*&vector:break_scope::vec [line 57, column 22]\n n$15=_fun_break_scope::vec::begin(&vector:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator*) assign_last [line 57, column 22]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator); [line 57, column 22]\n _=*&vector:break_scope::vec [line 57, column 22]\n n$12=_fun_break_scope::vec::begin(&vector:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator*) assign_last [line 57, column 22]\n " shape="box"] - "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_7" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_9" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_8" [label="8: DeclStmt \n VARIABLE_DECLARED(it:break_scope::iterator); [line 57, column 8]\n " shape="box"] + "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_7" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_8" ; +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_8" [label="8: Destruction(temporaries cleanup) \n n$13=_fun_break_scope::iterator::iterator(&it:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator&) [line 57, column 22]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator [line 57, column 35]\n n$15=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator*) injected [line 57, column 35]\n " shape="box"] - "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_8" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_7" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_9" [label="9: DeclStmt \n n$16=_fun_break_scope::iterator::iterator(&it:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator&) [line 57, column 22]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator [line 57, column 35]\n n$11=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$9:break_scope::iterator*) injected [line 57, column 35]\n " shape="box"] + "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_8" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_6" ; +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_9" [label="9: DeclStmt \n VARIABLE_DECLARED(it:break_scope::iterator); [line 57, column 8]\n " shape="box"] - "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_9" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_6" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_10" [label="10: Call _fun_break_scope::iterator::operator++ \n n$20=_fun_break_scope::iterator::operator++(&it:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$19:break_scope::iterator*) assign_last [line 57, column 58]\n " shape="box"] + "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_9" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_7" ; +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_10" [label="10: Call _fun_break_scope::iterator::operator++ \n n$19=_fun_break_scope::iterator::operator++(&it:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$18:break_scope::iterator*) assign_last [line 57, column 58]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_10" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_6" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_11" [label="11: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$22:break_scope::iterator const ); [line 57, column 44]\n _=*&vector:break_scope::vec [line 57, column 44]\n n$25=_fun_break_scope::vec::end(&vector:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$22:break_scope::iterator*) assign_last [line 57, column 44]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_11" [label="11: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$21:break_scope::iterator const ); [line 57, column 44]\n _=*&vector:break_scope::vec [line 57, column 44]\n n$24=_fun_break_scope::vec::end(&vector:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$21:break_scope::iterator*) assign_last [line 57, column 44]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_11" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_12" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_12" [label="12: Call _fun_break_scope::iterator::operator!= \n n$26=_fun_break_scope::iterator::operator!=(&it:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$22:break_scope::iterator const &) [line 57, column 38]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_12" [label="12: Call _fun_break_scope::iterator::operator!= \n n$25=_fun_break_scope::iterator::operator!=(&it:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$21:break_scope::iterator const &) [line 57, column 38]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_12" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_13" ; "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_12" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_14" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_13" [label="13: Prune (true branch, for loop) \n PRUNE(n$26, true); [line 57, column 38]\n " shape="invhouse"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_13" [label="13: Prune (true branch, for loop) \n PRUNE(n$25, true); [line 57, column 38]\n " shape="invhouse"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_13" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_16" ; "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_13" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_17" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_14" [label="14: Prune (false branch, for loop) \n PRUNE(!n$26, false); [line 57, column 38]\n " shape="invhouse"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_14" [label="14: Prune (false branch, for loop) \n PRUNE(!n$25, false); [line 57, column 38]\n " shape="invhouse"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_14" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_5" ; @@ -126,27 +126,27 @@ digraph cfg { "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_15" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_10" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_16" [label="16: Prune (true branch, if) \n n$27=*&b:_Bool [line 58, column 9]\n PRUNE(n$27, true); [line 58, column 9]\n " shape="invhouse"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_16" [label="16: Prune (true branch, if) \n n$26=*&b:_Bool [line 58, column 9]\n PRUNE(n$26, true); [line 58, column 9]\n " shape="invhouse"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_16" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_19" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_17" [label="17: Prune (false branch, if) \n n$27=*&b:_Bool [line 58, column 9]\n PRUNE(!n$27, false); [line 58, column 9]\n " shape="invhouse"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_17" [label="17: Prune (false branch, if) \n n$26=*&b:_Bool [line 58, column 9]\n PRUNE(!n$26, false); [line 58, column 9]\n " shape="invhouse"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_17" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_15" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_18" [label="18: Destruction(break) \n _=*&x1:break_scope::X [line 60, column 7]\n n$29=_fun_break_scope::X::~X(&x1:break_scope::X*) injected [line 60, column 7]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_18" [label="18: Destruction(break) \n _=*&x1:break_scope::X [line 60, column 7]\n n$28=_fun_break_scope::X::~X(&x1:break_scope::X*) injected [line 60, column 7]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_18" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_5" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_19" [label="19: DeclStmt \n VARIABLE_DECLARED(x1:break_scope::X); [line 59, column 7]\n n$31=_fun_break_scope::X::X(&x1:break_scope::X*) [line 59, column 9]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_19" [label="19: DeclStmt \n VARIABLE_DECLARED(x1:break_scope::X); [line 59, column 7]\n n$30=_fun_break_scope::X::X(&x1:break_scope::X*) [line 59, column 9]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_19" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_18" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_20" [label="20: DeclStmt \n VARIABLE_DECLARED(vector:break_scope::vec); [line 56, column 3]\n n$35=_fun_break_scope::vec::vec(&vector:break_scope::vec*) [line 56, column 7]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_20" [label="20: DeclStmt \n VARIABLE_DECLARED(vector:break_scope::vec); [line 56, column 3]\n n$34=_fun_break_scope::vec::vec(&vector:break_scope::vec*) [line 56, column 7]\n " shape="box"] - "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_20" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_8" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_1" [label="1: Start break_scope::test_for_range\nFormals: b:_Bool\nLocals: __end1:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator __begin1:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$19:break_scope::iterator 0$?%__sil_tmp__temp_return_n$30:break_scope::iterator x2:break_scope::X x:break_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$43:break_scope::X const __range1:break_scope::vec& x1:break_scope::X vector:break_scope::vec \n " color=yellow style=filled] + "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_20" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_9" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_1" [label="1: Start break_scope::test_for_range\nFormals: b:_Bool\nLocals: __end1:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator __begin1:break_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$18:break_scope::iterator 0$?%__sil_tmp__temp_return_n$28:break_scope::iterator x2:break_scope::X x:break_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$41:break_scope::X const __range1:break_scope::vec& x1:break_scope::X vector:break_scope::vec \n " color=yellow style=filled] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_1" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_26" ; @@ -165,44 +165,44 @@ digraph cfg { "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_13" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator); [line 47, column 12]\n n$14=*&__range1:break_scope::vec& [line 47, column 12]\n _=*n$14:break_scope::vec [line 47, column 12]\n n$17=_fun_break_scope::vec::end(n$14:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator); [line 47, column 12]\n n$11=*&__range1:break_scope::vec& [line 47, column 12]\n _=*n$11:break_scope::vec [line 47, column 12]\n n$14=_fun_break_scope::vec::end(n$11:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" [label="7: DeclStmt \n VARIABLE_DECLARED(__end1:break_scope::iterator); [line 47, column 12]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" [label="7: Destruction(temporaries cleanup) \n n$15=_fun_break_scope::iterator::iterator(&__end1:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator [line 47, column 12]\n n$17=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator*) injected [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" [label="8: DeclStmt \n n$18=_fun_break_scope::iterator::iterator(&__end1:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator [line 47, column 12]\n n$12=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$10:break_scope::iterator*) injected [line 47, column 12]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" [label="8: DeclStmt \n VARIABLE_DECLARED(__end1:break_scope::iterator); [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$19:break_scope::iterator); [line 47, column 12]\n n$23=*&__range1:break_scope::vec& [line 47, column 12]\n _=*n$23:break_scope::vec [line 47, column 12]\n n$26=_fun_break_scope::vec::begin(n$23:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$19:break_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_6" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$18:break_scope::iterator); [line 47, column 12]\n n$19=*&__range1:break_scope::vec& [line 47, column 12]\n _=*n$19:break_scope::vec [line 47, column 12]\n n$22=_fun_break_scope::vec::begin(n$19:break_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$18:break_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_9" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_10" [label="10: DeclStmt \n VARIABLE_DECLARED(__begin1:break_scope::iterator); [line 47, column 12]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_9" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_10" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_10" [label="10: Destruction(temporaries cleanup) \n n$23=_fun_break_scope::iterator::iterator(&__begin1:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$18:break_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$18:break_scope::iterator [line 47, column 12]\n n$25=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$18:break_scope::iterator*) injected [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_10" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_9" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" [label="11: DeclStmt \n n$27=_fun_break_scope::iterator::iterator(&__begin1:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$19:break_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$19:break_scope::iterator [line 47, column 12]\n n$21=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$19:break_scope::iterator*) injected [line 47, column 12]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_10" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_8" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" [label="11: DeclStmt \n VARIABLE_DECLARED(__begin1:break_scope::iterator); [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_7" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_12" [label="12: Call _fun_break_scope::iterator::operator++ \n n$31=_fun_break_scope::iterator::operator++(&__begin1:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$30:break_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_9" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_12" [label="12: Call _fun_break_scope::iterator::operator++ \n n$29=_fun_break_scope::iterator::operator++(&__begin1:break_scope::iterator&,&0$?%__sil_tmp__temp_return_n$28:break_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_12" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_5" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_13" [label="13: Call _fun_break_scope::iterator::operator!= \n n$33=_fun_break_scope::iterator::operator!=(&__begin1:break_scope::iterator&,&__end1:break_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_13" [label="13: Call _fun_break_scope::iterator::operator!= \n n$31=_fun_break_scope::iterator::operator!=(&__begin1:break_scope::iterator&,&__end1:break_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_13" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" ; "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_13" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" [label="14: Prune (true branch, for loop) \n PRUNE(n$33, true); [line 47, column 12]\n " shape="invhouse"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" [label="14: Prune (true branch, for loop) \n PRUNE(n$31, true); [line 47, column 12]\n " shape="invhouse"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_22" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" [label="15: Prune (false branch, for loop) \n PRUNE(!n$33, false); [line 47, column 12]\n " shape="invhouse"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_23" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" [label="15: Prune (false branch, for loop) \n PRUNE(!n$31, false); [line 47, column 12]\n " shape="invhouse"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_4" ; @@ -210,44 +210,44 @@ digraph cfg { "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_16" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_12" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" [label="17: Prune (true branch, if) \n n$34=*&b:_Bool [line 48, column 9]\n PRUNE(n$34, true); [line 48, column 9]\n " shape="invhouse"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" [label="17: Prune (true branch, if) \n n$32=*&b:_Bool [line 48, column 9]\n PRUNE(n$32, true); [line 48, column 9]\n " shape="invhouse"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_20" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" [label="18: Prune (false branch, if) \n n$34=*&b:_Bool [line 48, column 9]\n PRUNE(!n$34, false); [line 48, column 9]\n " shape="invhouse"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" [label="18: Prune (false branch, if) \n n$32=*&b:_Bool [line 48, column 9]\n PRUNE(!n$32, false); [line 48, column 9]\n " shape="invhouse"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_16" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_19" [label="19: Destruction(break) \n _=*&x2:break_scope::X [line 50, column 7]\n n$36=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 50, column 7]\n _=*&x:break_scope::X [line 50, column 7]\n n$38=_fun_break_scope::X::~X(&x:break_scope::X*) injected [line 50, column 7]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_19" [label="19: Destruction(break) \n _=*&x2:break_scope::X [line 50, column 7]\n n$34=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 50, column 7]\n _=*&x:break_scope::X [line 50, column 7]\n n$36=_fun_break_scope::X::~X(&x:break_scope::X*) injected [line 50, column 7]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_19" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_4" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_20" [label="20: DeclStmt \n VARIABLE_DECLARED(x2:break_scope::X); [line 49, column 7]\n n$40=_fun_break_scope::X::X(&x2:break_scope::X*,&x:break_scope::X&) [line 49, column 14]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_20" [label="20: DeclStmt \n VARIABLE_DECLARED(x2:break_scope::X); [line 49, column 7]\n n$38=_fun_break_scope::X::X(&x2:break_scope::X*,&x:break_scope::X&) [line 49, column 14]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_20" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_19" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_21" [label="21: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$43:break_scope::X const ); [line 47, column 12]\n n$49=_fun_break_scope::iterator::operator*(&__begin1:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$43:break_scope::X*) assign_last [line 47, column 12]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_21" [label="21: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$41:break_scope::X const ); [line 47, column 12]\n n$44=_fun_break_scope::iterator::operator*(&__begin1:break_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$41:break_scope::X*) assign_last [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_21" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_23" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_22" [label="22: DeclStmt \n VARIABLE_DECLARED(x:break_scope::X); [line 47, column 8]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_21" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_22" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_22" [label="22: Destruction(temporaries cleanup) \n n$45=_fun_break_scope::X::X(&x:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$41:break_scope::X const &) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$41:break_scope::X const [line 47, column 12]\n n$47=_fun_break_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$41:break_scope::X const *) injected [line 47, column 12]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_22" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_21" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_23" [label="23: DeclStmt \n n$50=_fun_break_scope::X::X(&x:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$43:break_scope::X const &) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$43:break_scope::X const [line 47, column 12]\n n$45=_fun_break_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$43:break_scope::X const *) injected [line 47, column 12]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_22" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" ; + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_22" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_23" [label="23: DeclStmt \n VARIABLE_DECLARED(x:break_scope::X); [line 47, column 8]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_23" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_17" ; - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_23" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_18" ; + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_23" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_21" ; "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_24" [label="24: DeclStmt \n VARIABLE_DECLARED(__range1:break_scope::vec&); [line 47, column 14]\n *&__range1:break_scope::vec&=&vector [line 47, column 14]\n " shape="box"] - "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_24" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_10" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_25" [label="25: DeclStmt \n VARIABLE_DECLARED(x1:break_scope::X); [line 46, column 3]\n n$52=_fun_break_scope::X::X(&x1:break_scope::X*) [line 46, column 5]\n " shape="box"] + "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_24" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" ; +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_25" [label="25: DeclStmt \n VARIABLE_DECLARED(x1:break_scope::X); [line 46, column 3]\n n$49=_fun_break_scope::X::X(&x1:break_scope::X*) [line 46, column 5]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_25" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_24" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_26" [label="26: DeclStmt \n VARIABLE_DECLARED(vector:break_scope::vec); [line 45, column 3]\n n$53=_fun_break_scope::vec::vec(&vector:break_scope::vec*) [line 45, column 7]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_26" [label="26: DeclStmt \n VARIABLE_DECLARED(vector:break_scope::vec); [line 45, column 3]\n n$50=_fun_break_scope::vec::vec(&vector:break_scope::vec*) [line 45, column 7]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_26" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_25" ; @@ -586,22 +586,22 @@ digraph cfg { "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_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 const \n " color=yellow style=filled] - "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_1" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_4" ; + "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_1" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_5" ; "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_2" [label="2: Exit break_scope::iterator::operator* \n " color=yellow style=filled] -"operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const ); [line 42, column 40]\n n$5=*&this:break_scope::iterator const * [line 42, column 40]\n n$6=*n$5.vector:break_scope::vec const * [line 42, column 40]\n _=*n$6:break_scope::vec const [line 42, column 40]\n n$8=*&this:break_scope::iterator const * [line 42, column 52]\n n$9=*n$8.position:int [line 42, column 52]\n n$11=_fun_break_scope::vec::get(n$6:break_scope::vec const *,n$9:int,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X*) assign_last [line 42, column 40]\n " shape="box"] +"operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const ); [line 42, column 40]\n n$2=*&this:break_scope::iterator const * [line 42, column 40]\n n$3=*n$2.vector:break_scope::vec const * [line 42, column 40]\n _=*n$3:break_scope::vec const [line 42, column 40]\n n$5=*&this:break_scope::iterator const * [line 42, column 52]\n n$6=*n$5.position:int [line 42, column 52]\n n$8=_fun_break_scope::vec::get(n$3:break_scope::vec const *,n$6:int,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X*) assign_last [line 42, column 40]\n " shape="box"] - "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_3" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_5" ; -"operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_4" [label="4: Return Stmt \n n$0=*&__return_param:break_scope::X* [line 42, column 33]\n " shape="box"] + "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_3" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_4" ; +"operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_4" [label="4: Destruction(temporaries cleanup) \n n$9=_fun_break_scope::X::X(n$0:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const &) [line 42, column 40]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const [line 42, column 60]\n n$11=_fun_break_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const *) injected [line 42, column 60]\n " shape="box"] - "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_4" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_3" ; -"operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_5" [label="5: Return Stmt \n n$12=_fun_break_scope::X::X(n$0:break_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const &) [line 42, column 40]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const [line 42, column 60]\n n$3=_fun_break_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::X const *) injected [line 42, column 60]\n " shape="box"] + "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_4" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_6" ; +"operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_5" [label="5: Return Stmt \n n$0=*&__return_param:break_scope::X* [line 42, column 33]\n " shape="box"] - "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_5" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_6" ; + "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_5" -> "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_3" ; "operator*#iterator#break_scope(class break_scope::X)#(4328339407583570703).89adb890a0c29514eda31053987e2050_6" [label="6: Return Stmt \n " shape="box"] @@ -673,22 +673,22 @@ digraph cfg { "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_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 " color=yellow style=filled] - "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_1" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_4" ; + "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_1" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_5" ; "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_2" [label="2: Exit break_scope::vec::end \n " color=yellow style=filled] -"end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator); [line 35, column 27]\n n$5=*&this:break_scope::vec* [line 35, column 36]\n n$6=_fun_break_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*,n$5:break_scope::vec*,10:int) [line 35, column 27]\n " shape="box"] +"end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator); [line 35, column 27]\n n$2=*&this:break_scope::vec* [line 35, column 36]\n n$3=_fun_break_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*,n$2:break_scope::vec*,10:int) [line 35, column 27]\n " shape="box"] - "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_3" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_5" ; -"end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_4" [label="4: Return Stmt \n n$0=*&__return_param:break_scope::iterator* [line 35, column 20]\n " shape="box"] + "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_3" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_4" ; +"end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_4" [label="4: Destruction(temporaries cleanup) \n n$4=_fun_break_scope::iterator::iterator(n$0:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator&) [line 35, column 27]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator [line 35, column 44]\n n$6=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*) injected [line 35, column 44]\n " shape="box"] - "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_4" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_3" ; -"end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_5" [label="5: Return Stmt \n n$7=_fun_break_scope::iterator::iterator(n$0:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator&) [line 35, column 27]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator [line 35, column 44]\n n$3=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*) injected [line 35, column 44]\n " shape="box"] + "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_4" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_6" ; +"end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_5" [label="5: Return Stmt \n n$0=*&__return_param:break_scope::iterator* [line 35, column 20]\n " shape="box"] - "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_5" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_6" ; + "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_5" -> "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_3" ; "end#vec#break_scope(class break_scope::iterator)#(4427317924121915380).28b4ffbb5a64aa367cc424acb2a0de9b_6" [label="6: Return Stmt \n " shape="box"] @@ -696,22 +696,22 @@ digraph cfg { "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_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 " color=yellow style=filled] - "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_1" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_4" ; + "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_1" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_5" ; "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_2" [label="2: Exit break_scope::vec::begin \n " color=yellow style=filled] -"begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator); [line 34, column 29]\n n$5=*&this:break_scope::vec* [line 34, column 38]\n n$6=_fun_break_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*,n$5:break_scope::vec*,0:int) [line 34, column 29]\n " shape="box"] +"begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator); [line 34, column 29]\n n$2=*&this:break_scope::vec* [line 34, column 38]\n n$3=_fun_break_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*,n$2:break_scope::vec*,0:int) [line 34, column 29]\n " shape="box"] - "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_3" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_5" ; -"begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_4" [label="4: Return Stmt \n n$0=*&__return_param:break_scope::iterator* [line 34, column 22]\n " shape="box"] + "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_3" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_4" ; +"begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_4" [label="4: Destruction(temporaries cleanup) \n n$4=_fun_break_scope::iterator::iterator(n$0:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator&) [line 34, column 29]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator [line 34, column 45]\n n$6=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*) injected [line 34, column 45]\n " shape="box"] - "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_4" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_3" ; -"begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_5" [label="5: Return Stmt \n n$7=_fun_break_scope::iterator::iterator(n$0:break_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator&) [line 34, column 29]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator [line 34, column 45]\n n$3=_fun_break_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:break_scope::iterator*) injected [line 34, column 45]\n " shape="box"] + "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_4" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_6" ; +"begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_5" [label="5: Return Stmt \n n$0=*&__return_param:break_scope::iterator* [line 34, column 22]\n " shape="box"] - "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_5" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_6" ; + "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_5" -> "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_3" ; "begin#vec#break_scope(class break_scope::iterator)#(5557509884489875894).5dac1fcfbf012c7c4e9ccd6f67cbd1ce_6" [label="6: Return Stmt \n " shape="box"] diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot index fd704925c..4816b3688 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot @@ -66,7 +66,7 @@ digraph cfg { "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_16" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_4" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_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$9:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$19:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$22:continue_scope::iterator const x1:continue_scope::X vector:continue_scope::vec \n " color=yellow style=filled] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_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$9:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$18:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$21:continue_scope::iterator const x1:continue_scope::X vector:continue_scope::vec \n " color=yellow style=filled] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_1" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_20" ; @@ -89,37 +89,37 @@ digraph cfg { "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_6" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_11" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator); [line 57, column 22]\n _=*&vector:continue_scope::vec [line 57, column 22]\n n$15=_fun_continue_scope::vec::begin(&vector:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator*) assign_last [line 57, column 22]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator); [line 57, column 22]\n _=*&vector:continue_scope::vec [line 57, column 22]\n n$12=_fun_continue_scope::vec::begin(&vector:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator*) assign_last [line 57, column 22]\n " shape="box"] - "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_7" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_9" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_8" [label="8: DeclStmt \n VARIABLE_DECLARED(it:continue_scope::iterator); [line 57, column 8]\n " shape="box"] + "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_7" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_8" ; +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_8" [label="8: Destruction(temporaries cleanup) \n n$13=_fun_continue_scope::iterator::iterator(&it:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator&) [line 57, column 22]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator [line 57, column 35]\n n$15=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator*) injected [line 57, column 35]\n " shape="box"] - "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_8" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_7" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_9" [label="9: DeclStmt \n n$16=_fun_continue_scope::iterator::iterator(&it:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator&) [line 57, column 22]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator [line 57, column 35]\n n$11=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$9:continue_scope::iterator*) injected [line 57, column 35]\n " shape="box"] + "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_8" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_6" ; +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_9" [label="9: DeclStmt \n VARIABLE_DECLARED(it:continue_scope::iterator); [line 57, column 8]\n " shape="box"] - "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_9" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_6" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_10" [label="10: Call _fun_continue_scope::iterator::operator++ \n n$20=_fun_continue_scope::iterator::operator++(&it:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$19:continue_scope::iterator*) assign_last [line 57, column 58]\n " shape="box"] + "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_9" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_7" ; +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_10" [label="10: Call _fun_continue_scope::iterator::operator++ \n n$19=_fun_continue_scope::iterator::operator++(&it:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$18:continue_scope::iterator*) assign_last [line 57, column 58]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_10" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_6" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_11" [label="11: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$22:continue_scope::iterator const ); [line 57, column 44]\n _=*&vector:continue_scope::vec [line 57, column 44]\n n$25=_fun_continue_scope::vec::end(&vector:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$22:continue_scope::iterator*) assign_last [line 57, column 44]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_11" [label="11: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$21:continue_scope::iterator const ); [line 57, column 44]\n _=*&vector:continue_scope::vec [line 57, column 44]\n n$24=_fun_continue_scope::vec::end(&vector:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$21:continue_scope::iterator*) assign_last [line 57, column 44]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_11" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_12" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_12" [label="12: Call _fun_continue_scope::iterator::operator!= \n n$26=_fun_continue_scope::iterator::operator!=(&it:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$22:continue_scope::iterator const &) [line 57, column 38]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_12" [label="12: Call _fun_continue_scope::iterator::operator!= \n n$25=_fun_continue_scope::iterator::operator!=(&it:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$21:continue_scope::iterator const &) [line 57, column 38]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_12" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_13" ; "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_12" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_14" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_13" [label="13: Prune (true branch, for loop) \n PRUNE(n$26, true); [line 57, column 38]\n " shape="invhouse"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_13" [label="13: Prune (true branch, for loop) \n PRUNE(n$25, true); [line 57, column 38]\n " shape="invhouse"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_13" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_16" ; "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_13" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_17" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_14" [label="14: Prune (false branch, for loop) \n PRUNE(!n$26, false); [line 57, column 38]\n " shape="invhouse"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_14" [label="14: Prune (false branch, for loop) \n PRUNE(!n$25, false); [line 57, column 38]\n " shape="invhouse"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_14" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_5" ; @@ -127,27 +127,27 @@ digraph cfg { "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_15" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_10" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_16" [label="16: Prune (true branch, if) \n n$27=*&b:_Bool [line 58, column 9]\n PRUNE(n$27, true); [line 58, column 9]\n " shape="invhouse"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_16" [label="16: Prune (true branch, if) \n n$26=*&b:_Bool [line 58, column 9]\n PRUNE(n$26, true); [line 58, column 9]\n " shape="invhouse"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_16" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_19" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_17" [label="17: Prune (false branch, if) \n n$27=*&b:_Bool [line 58, column 9]\n PRUNE(!n$27, false); [line 58, column 9]\n " shape="invhouse"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_17" [label="17: Prune (false branch, if) \n n$26=*&b:_Bool [line 58, column 9]\n PRUNE(!n$26, false); [line 58, column 9]\n " shape="invhouse"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_17" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_15" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_18" [label="18: Destruction(continue) \n _=*&x1:continue_scope::X [line 60, column 7]\n n$29=_fun_continue_scope::X::~X(&x1:continue_scope::X*) injected [line 60, column 7]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_18" [label="18: Destruction(continue) \n _=*&x1:continue_scope::X [line 60, column 7]\n n$28=_fun_continue_scope::X::~X(&x1:continue_scope::X*) injected [line 60, column 7]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_18" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_10" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_19" [label="19: DeclStmt \n VARIABLE_DECLARED(x1:continue_scope::X); [line 59, column 7]\n n$31=_fun_continue_scope::X::X(&x1:continue_scope::X*) [line 59, column 9]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_19" [label="19: DeclStmt \n VARIABLE_DECLARED(x1:continue_scope::X); [line 59, column 7]\n n$30=_fun_continue_scope::X::X(&x1:continue_scope::X*) [line 59, column 9]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_19" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_18" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_20" [label="20: DeclStmt \n VARIABLE_DECLARED(vector:continue_scope::vec); [line 56, column 3]\n n$35=_fun_continue_scope::vec::vec(&vector:continue_scope::vec*) [line 56, column 7]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_20" [label="20: DeclStmt \n VARIABLE_DECLARED(vector:continue_scope::vec); [line 56, column 3]\n n$34=_fun_continue_scope::vec::vec(&vector:continue_scope::vec*) [line 56, column 7]\n " shape="box"] - "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_20" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_8" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_1" [label="1: Start continue_scope::test_for_range\nFormals: b:_Bool\nLocals: __end1:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator __begin1:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$19:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$30:continue_scope::iterator x2:continue_scope::X x:continue_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$43:continue_scope::X const __range1:continue_scope::vec& x1:continue_scope::X vector:continue_scope::vec \n " color=yellow style=filled] + "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_20" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_9" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_1" [label="1: Start continue_scope::test_for_range\nFormals: b:_Bool\nLocals: __end1:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator __begin1:continue_scope::iterator 0$?%__sil_tmpSIL_materialize_temp__n$18:continue_scope::iterator 0$?%__sil_tmp__temp_return_n$28:continue_scope::iterator x2:continue_scope::X x:continue_scope::X 0$?%__sil_tmpSIL_materialize_temp__n$41:continue_scope::X const __range1:continue_scope::vec& x1:continue_scope::X vector:continue_scope::vec \n " color=yellow style=filled] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_1" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_26" ; @@ -166,44 +166,44 @@ digraph cfg { "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_13" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator); [line 47, column 12]\n n$14=*&__range1:continue_scope::vec& [line 47, column 12]\n _=*n$14:continue_scope::vec [line 47, column 12]\n n$17=_fun_continue_scope::vec::end(n$14:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator); [line 47, column 12]\n n$11=*&__range1:continue_scope::vec& [line 47, column 12]\n _=*n$11:continue_scope::vec [line 47, column 12]\n n$14=_fun_continue_scope::vec::end(n$11:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" [label="7: DeclStmt \n VARIABLE_DECLARED(__end1:continue_scope::iterator); [line 47, column 12]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" [label="7: Destruction(temporaries cleanup) \n n$15=_fun_continue_scope::iterator::iterator(&__end1:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator [line 47, column 12]\n n$17=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator*) injected [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" [label="8: DeclStmt \n n$18=_fun_continue_scope::iterator::iterator(&__end1:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator [line 47, column 12]\n n$12=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$10:continue_scope::iterator*) injected [line 47, column 12]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" [label="8: DeclStmt \n VARIABLE_DECLARED(__end1:continue_scope::iterator); [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$19:continue_scope::iterator); [line 47, column 12]\n n$23=*&__range1:continue_scope::vec& [line 47, column 12]\n _=*n$23:continue_scope::vec [line 47, column 12]\n n$26=_fun_continue_scope::vec::begin(n$23:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$19:continue_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_6" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$18:continue_scope::iterator); [line 47, column 12]\n n$19=*&__range1:continue_scope::vec& [line 47, column 12]\n _=*n$19:continue_scope::vec [line 47, column 12]\n n$22=_fun_continue_scope::vec::begin(n$19:continue_scope::vec&,&0$?%__sil_tmpSIL_materialize_temp__n$18:continue_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_9" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_10" [label="10: DeclStmt \n VARIABLE_DECLARED(__begin1:continue_scope::iterator); [line 47, column 12]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_9" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_10" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_10" [label="10: Destruction(temporaries cleanup) \n n$23=_fun_continue_scope::iterator::iterator(&__begin1:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$18:continue_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$18:continue_scope::iterator [line 47, column 12]\n n$25=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$18:continue_scope::iterator*) injected [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_10" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_9" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" [label="11: DeclStmt \n n$27=_fun_continue_scope::iterator::iterator(&__begin1:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$19:continue_scope::iterator&) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$19:continue_scope::iterator [line 47, column 12]\n n$21=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$19:continue_scope::iterator*) injected [line 47, column 12]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_10" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_8" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" [label="11: DeclStmt \n VARIABLE_DECLARED(__begin1:continue_scope::iterator); [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_12" [label="12: Call _fun_continue_scope::iterator::operator++ \n n$31=_fun_continue_scope::iterator::operator++(&__begin1:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$30:continue_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_9" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_12" [label="12: Call _fun_continue_scope::iterator::operator++ \n n$29=_fun_continue_scope::iterator::operator++(&__begin1:continue_scope::iterator&,&0$?%__sil_tmp__temp_return_n$28:continue_scope::iterator*) assign_last [line 47, column 12]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_12" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_5" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_13" [label="13: Call _fun_continue_scope::iterator::operator!= \n n$33=_fun_continue_scope::iterator::operator!=(&__begin1:continue_scope::iterator&,&__end1:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_13" [label="13: Call _fun_continue_scope::iterator::operator!= \n n$31=_fun_continue_scope::iterator::operator!=(&__begin1:continue_scope::iterator&,&__end1:continue_scope::iterator&) [line 47, column 12]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_13" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" ; "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_13" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" [label="14: Prune (true branch, for loop) \n PRUNE(n$33, true); [line 47, column 12]\n " shape="invhouse"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" [label="14: Prune (true branch, for loop) \n PRUNE(n$31, true); [line 47, column 12]\n " shape="invhouse"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_22" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" [label="15: Prune (false branch, for loop) \n PRUNE(!n$33, false); [line 47, column 12]\n " shape="invhouse"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_23" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" [label="15: Prune (false branch, for loop) \n PRUNE(!n$31, false); [line 47, column 12]\n " shape="invhouse"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_4" ; @@ -211,44 +211,44 @@ digraph cfg { "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_16" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_12" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" [label="17: Prune (true branch, if) \n n$34=*&b:_Bool [line 48, column 9]\n PRUNE(n$34, true); [line 48, column 9]\n " shape="invhouse"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" [label="17: Prune (true branch, if) \n n$32=*&b:_Bool [line 48, column 9]\n PRUNE(n$32, true); [line 48, column 9]\n " shape="invhouse"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_20" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" [label="18: Prune (false branch, if) \n n$34=*&b:_Bool [line 48, column 9]\n PRUNE(!n$34, false); [line 48, column 9]\n " shape="invhouse"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" [label="18: Prune (false branch, if) \n n$32=*&b:_Bool [line 48, column 9]\n PRUNE(!n$32, false); [line 48, column 9]\n " shape="invhouse"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_16" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_19" [label="19: Destruction(continue) \n _=*&x2:continue_scope::X [line 50, column 7]\n n$36=_fun_continue_scope::X::~X(&x2:continue_scope::X*) injected [line 50, column 7]\n _=*&x:continue_scope::X [line 50, column 7]\n n$38=_fun_continue_scope::X::~X(&x:continue_scope::X*) injected [line 50, column 7]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_19" [label="19: Destruction(continue) \n _=*&x2:continue_scope::X [line 50, column 7]\n n$34=_fun_continue_scope::X::~X(&x2:continue_scope::X*) injected [line 50, column 7]\n _=*&x:continue_scope::X [line 50, column 7]\n n$36=_fun_continue_scope::X::~X(&x:continue_scope::X*) injected [line 50, column 7]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_19" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_12" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_20" [label="20: DeclStmt \n VARIABLE_DECLARED(x2:continue_scope::X); [line 49, column 7]\n n$40=_fun_continue_scope::X::X(&x2:continue_scope::X*,&x:continue_scope::X&) [line 49, column 14]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_20" [label="20: DeclStmt \n VARIABLE_DECLARED(x2:continue_scope::X); [line 49, column 7]\n n$38=_fun_continue_scope::X::X(&x2:continue_scope::X*,&x:continue_scope::X&) [line 49, column 14]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_20" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_19" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_21" [label="21: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$43:continue_scope::X const ); [line 47, column 12]\n n$49=_fun_continue_scope::iterator::operator*(&__begin1:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$43:continue_scope::X*) assign_last [line 47, column 12]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_21" [label="21: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$41:continue_scope::X const ); [line 47, column 12]\n n$44=_fun_continue_scope::iterator::operator*(&__begin1:continue_scope::iterator&,&0$?%__sil_tmpSIL_materialize_temp__n$41:continue_scope::X*) assign_last [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_21" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_23" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_22" [label="22: DeclStmt \n VARIABLE_DECLARED(x:continue_scope::X); [line 47, column 8]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_21" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_22" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_22" [label="22: Destruction(temporaries cleanup) \n n$45=_fun_continue_scope::X::X(&x:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$41:continue_scope::X const &) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$41:continue_scope::X const [line 47, column 12]\n n$47=_fun_continue_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$41:continue_scope::X const *) injected [line 47, column 12]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_22" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_21" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_23" [label="23: DeclStmt \n n$50=_fun_continue_scope::X::X(&x:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$43:continue_scope::X const &) [line 47, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$43:continue_scope::X const [line 47, column 12]\n n$45=_fun_continue_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$43:continue_scope::X const *) injected [line 47, column 12]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_22" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" ; + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_22" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_23" [label="23: DeclStmt \n VARIABLE_DECLARED(x:continue_scope::X); [line 47, column 8]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_23" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_17" ; - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_23" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_18" ; + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_23" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_21" ; "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_24" [label="24: DeclStmt \n VARIABLE_DECLARED(__range1:continue_scope::vec&); [line 47, column 14]\n *&__range1:continue_scope::vec&=&vector [line 47, column 14]\n " shape="box"] - "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_24" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_10" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_25" [label="25: DeclStmt \n VARIABLE_DECLARED(x1:continue_scope::X); [line 46, column 3]\n n$52=_fun_continue_scope::X::X(&x1:continue_scope::X*) [line 46, column 5]\n " shape="box"] + "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_24" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" ; +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_25" [label="25: DeclStmt \n VARIABLE_DECLARED(x1:continue_scope::X); [line 46, column 3]\n n$49=_fun_continue_scope::X::X(&x1:continue_scope::X*) [line 46, column 5]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_25" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_24" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_26" [label="26: DeclStmt \n VARIABLE_DECLARED(vector:continue_scope::vec); [line 45, column 3]\n n$53=_fun_continue_scope::vec::vec(&vector:continue_scope::vec*) [line 45, column 7]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_26" [label="26: DeclStmt \n VARIABLE_DECLARED(vector:continue_scope::vec); [line 45, column 3]\n n$50=_fun_continue_scope::vec::vec(&vector:continue_scope::vec*) [line 45, column 7]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_26" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_25" ; @@ -454,22 +454,22 @@ digraph cfg { "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_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 const \n " color=yellow style=filled] - "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_1" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_4" ; + "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_1" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_5" ; "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_2" [label="2: Exit continue_scope::iterator::operator* \n " color=yellow style=filled] -"operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const ); [line 42, column 40]\n n$5=*&this:continue_scope::iterator const * [line 42, column 40]\n n$6=*n$5.vector:continue_scope::vec const * [line 42, column 40]\n _=*n$6:continue_scope::vec const [line 42, column 40]\n n$8=*&this:continue_scope::iterator const * [line 42, column 52]\n n$9=*n$8.position:int [line 42, column 52]\n n$11=_fun_continue_scope::vec::get(n$6:continue_scope::vec const *,n$9:int,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X*) assign_last [line 42, column 40]\n " shape="box"] +"operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const ); [line 42, column 40]\n n$2=*&this:continue_scope::iterator const * [line 42, column 40]\n n$3=*n$2.vector:continue_scope::vec const * [line 42, column 40]\n _=*n$3:continue_scope::vec const [line 42, column 40]\n n$5=*&this:continue_scope::iterator const * [line 42, column 52]\n n$6=*n$5.position:int [line 42, column 52]\n n$8=_fun_continue_scope::vec::get(n$3:continue_scope::vec const *,n$6:int,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X*) assign_last [line 42, column 40]\n " shape="box"] - "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_3" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_5" ; -"operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_4" [label="4: Return Stmt \n n$0=*&__return_param:continue_scope::X* [line 42, column 33]\n " shape="box"] + "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_3" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_4" ; +"operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_4" [label="4: Destruction(temporaries cleanup) \n n$9=_fun_continue_scope::X::X(n$0:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const &) [line 42, column 40]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const [line 42, column 60]\n n$11=_fun_continue_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const *) injected [line 42, column 60]\n " shape="box"] - "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_4" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_3" ; -"operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_5" [label="5: Return Stmt \n n$12=_fun_continue_scope::X::X(n$0:continue_scope::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const &) [line 42, column 40]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const [line 42, column 60]\n n$3=_fun_continue_scope::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::X const *) injected [line 42, column 60]\n " shape="box"] + "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_4" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_6" ; +"operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_5" [label="5: Return Stmt \n n$0=*&__return_param:continue_scope::X* [line 42, column 33]\n " shape="box"] - "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_5" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_6" ; + "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_5" -> "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_3" ; "operator*#iterator#continue_scope(class continue_scope::X)#(10976315504449545146).6f0a140275409bbf42ae1dbc8842f6af_6" [label="6: Return Stmt \n " shape="box"] @@ -581,22 +581,22 @@ digraph cfg { "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_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 " color=yellow style=filled] - "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_1" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_4" ; + "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_1" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_5" ; "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_2" [label="2: Exit continue_scope::vec::begin \n " color=yellow style=filled] -"begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator); [line 34, column 29]\n n$5=*&this:continue_scope::vec* [line 34, column 38]\n n$6=_fun_continue_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*,n$5:continue_scope::vec*,0:int) [line 34, column 29]\n " shape="box"] +"begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator); [line 34, column 29]\n n$2=*&this:continue_scope::vec* [line 34, column 38]\n n$3=_fun_continue_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*,n$2:continue_scope::vec*,0:int) [line 34, column 29]\n " shape="box"] - "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_3" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_5" ; -"begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_4" [label="4: Return Stmt \n n$0=*&__return_param:continue_scope::iterator* [line 34, column 22]\n " shape="box"] + "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_3" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_4" ; +"begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_4" [label="4: Destruction(temporaries cleanup) \n n$4=_fun_continue_scope::iterator::iterator(n$0:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator&) [line 34, column 29]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator [line 34, column 45]\n n$6=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*) injected [line 34, column 45]\n " shape="box"] - "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_4" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_3" ; -"begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_5" [label="5: Return Stmt \n n$7=_fun_continue_scope::iterator::iterator(n$0:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator&) [line 34, column 29]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator [line 34, column 45]\n n$3=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*) injected [line 34, column 45]\n " shape="box"] + "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_4" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_6" ; +"begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_5" [label="5: Return Stmt \n n$0=*&__return_param:continue_scope::iterator* [line 34, column 22]\n " shape="box"] - "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_5" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_6" ; + "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_5" -> "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_3" ; "begin#vec#continue_scope(class continue_scope::iterator)#(10867355481694456603).8c0551e386b9f2c25bf3629672b303c4_6" [label="6: Return Stmt \n " shape="box"] @@ -623,22 +623,22 @@ digraph cfg { "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_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 " color=yellow style=filled] - "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_1" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_4" ; + "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_1" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_5" ; "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_2" [label="2: Exit continue_scope::vec::end \n " color=yellow style=filled] -"end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator); [line 35, column 27]\n n$5=*&this:continue_scope::vec* [line 35, column 36]\n n$6=_fun_continue_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*,n$5:continue_scope::vec*,10:int) [line 35, column 27]\n " shape="box"] +"end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator); [line 35, column 27]\n n$2=*&this:continue_scope::vec* [line 35, column 36]\n n$3=_fun_continue_scope::iterator::iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*,n$2:continue_scope::vec*,10:int) [line 35, column 27]\n " shape="box"] - "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_3" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_5" ; -"end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_4" [label="4: Return Stmt \n n$0=*&__return_param:continue_scope::iterator* [line 35, column 20]\n " shape="box"] + "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_3" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_4" ; +"end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_4" [label="4: Destruction(temporaries cleanup) \n n$4=_fun_continue_scope::iterator::iterator(n$0:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator&) [line 35, column 27]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator [line 35, column 44]\n n$6=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*) injected [line 35, column 44]\n " shape="box"] - "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_4" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_3" ; -"end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_5" [label="5: Return Stmt \n n$7=_fun_continue_scope::iterator::iterator(n$0:continue_scope::iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator&) [line 35, column 27]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator [line 35, column 44]\n n$3=_fun_continue_scope::iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$1:continue_scope::iterator*) injected [line 35, column 44]\n " shape="box"] + "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_4" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_6" ; +"end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_5" [label="5: Return Stmt \n n$0=*&__return_param:continue_scope::iterator* [line 35, column 20]\n " shape="box"] - "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_5" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_6" ; + "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_5" -> "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_3" ; "end#vec#continue_scope(class continue_scope::iterator)#(4225103001970544933).15b63d21cc3cccf91200fcac42652775_6" [label="6: Return Stmt \n " shape="box"] diff --git a/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot index 5ce2f37f7..7d9dfe8b4 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/loops/foreach1.cpp.dot @@ -36,7 +36,7 @@ digraph cfg { "operator!=#4715710375716659667.eb4126b3edd381f3092a9e38275754d4_9" -> "operator!=#4715710375716659667.eb4126b3edd381f3092a9e38275754d4_2" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_1" [label="1: Start test\nFormals: \nLocals: __end1:iterator 0$?%__sil_tmpSIL_materialize_temp__n$5:iterator __begin1:iterator 0$?%__sil_tmpSIL_materialize_temp__n$14:iterator 0$?%__sil_tmp__temp_return_n$25:iterator 0$?%__sil_tmp__temp_construct_n$27:iterator 0$?%__sil_tmp__temp_construct_n$29:iterator temp:int value:int __range1:vec& vector:vec \n " color=yellow style=filled] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_1" [label="1: Start test\nFormals: \nLocals: __end1:iterator 0$?%__sil_tmpSIL_materialize_temp__n$5:iterator __begin1:iterator 0$?%__sil_tmpSIL_materialize_temp__n$13:iterator 0$?%__sil_tmp__temp_return_n$23:iterator 0$?%__sil_tmp__temp_construct_n$25:iterator 0$?%__sil_tmp__temp_construct_n$27:iterator temp:int value:int __range1:vec& vector:vec \n " color=yellow style=filled] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_1" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_18" ; @@ -51,60 +51,60 @@ digraph cfg { "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$5:iterator); [line 35, column 18]\n n$9=*&__range1:vec& [line 35, column 18]\n _=*n$9:vec [line 35, column 18]\n n$12=_fun_vec::end(n$9:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator*) assign_last [line 35, column 18]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$5:iterator); [line 35, column 18]\n n$6=*&__range1:vec& [line 35, column 18]\n _=*n$6:vec [line 35, column 18]\n n$9=_fun_vec::end(n$6:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator*) assign_last [line 35, column 18]\n " shape="box"] - "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" [label="6: DeclStmt \n VARIABLE_DECLARED(__end1:iterator); [line 35, column 18]\n " shape="box"] + "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" ; +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" [label="6: Destruction(temporaries cleanup) \n n$10=_fun_iterator::iterator(&__end1:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator&) [line 35, column 18]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator [line 35, column 18]\n n$12=_fun_iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator*) injected [line 35, column 18]\n " shape="box"] - "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" [label="7: DeclStmt \n n$13=_fun_iterator::iterator(&__end1:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator&) [line 35, column 18]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator [line 35, column 18]\n n$7=_fun_iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$5:iterator*) injected [line 35, column 18]\n " shape="box"] + "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" ; +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" [label="7: DeclStmt \n VARIABLE_DECLARED(__end1:iterator); [line 35, column 18]\n " shape="box"] - "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_8" [label="8: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$14:iterator); [line 35, column 18]\n n$18=*&__range1:vec& [line 35, column 18]\n _=*n$18:vec [line 35, column 18]\n n$21=_fun_vec::begin(n$18:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$14:iterator*) assign_last [line 35, column 18]\n " shape="box"] + "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_5" ; +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_8" [label="8: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$13:iterator); [line 35, column 18]\n n$14=*&__range1:vec& [line 35, column 18]\n _=*n$14:vec [line 35, column 18]\n n$17=_fun_vec::begin(n$14:vec&,&0$?%__sil_tmpSIL_materialize_temp__n$13:iterator*) assign_last [line 35, column 18]\n " shape="box"] - "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_8" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_9" [label="9: DeclStmt \n VARIABLE_DECLARED(__begin1:iterator); [line 35, column 18]\n " shape="box"] + "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_8" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_9" ; +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_9" [label="9: Destruction(temporaries cleanup) \n n$18=_fun_iterator::iterator(&__begin1:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$13:iterator&) [line 35, column 18]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$13:iterator [line 35, column 18]\n n$20=_fun_iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$13:iterator*) injected [line 35, column 18]\n " shape="box"] - "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_9" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_8" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" [label="10: DeclStmt \n n$22=_fun_iterator::iterator(&__begin1:iterator*,&0$?%__sil_tmpSIL_materialize_temp__n$14:iterator&) [line 35, column 18]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$14:iterator [line 35, column 18]\n n$16=_fun_iterator::~iterator(&0$?%__sil_tmpSIL_materialize_temp__n$14:iterator*) injected [line 35, column 18]\n " shape="box"] + "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_9" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_7" ; +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" [label="10: DeclStmt \n VARIABLE_DECLARED(__begin1:iterator); [line 35, column 18]\n " shape="box"] - "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_6" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_11" [label="11: Call _fun_iterator::operator++ \n n$26=_fun_iterator::operator++(&__begin1:iterator&,&0$?%__sil_tmp__temp_return_n$25:iterator*) assign_last [line 35, column 18]\n " shape="box"] + "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_8" ; +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_11" [label="11: Call _fun_iterator::operator++ \n n$24=_fun_iterator::operator++(&__begin1:iterator&,&0$?%__sil_tmp__temp_return_n$23:iterator*) assign_last [line 35, column 18]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_11" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_4" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" [label="12: Call _fun_operator!= \n n$28=_fun_iterator::iterator(&0$?%__sil_tmp__temp_construct_n$27:iterator*,&__begin1:iterator&) [line 35, column 18]\n n$30=_fun_iterator::iterator(&0$?%__sil_tmp__temp_construct_n$29:iterator*,&__end1:iterator&) [line 35, column 18]\n n$31=_fun_operator!=(&0$?%__sil_tmp__temp_construct_n$27:iterator,&0$?%__sil_tmp__temp_construct_n$29:iterator) [line 35, column 18]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" [label="12: Call _fun_operator!= \n n$26=_fun_iterator::iterator(&0$?%__sil_tmp__temp_construct_n$25:iterator*,&__begin1:iterator&) [line 35, column 18]\n n$28=_fun_iterator::iterator(&0$?%__sil_tmp__temp_construct_n$27:iterator*,&__end1:iterator&) [line 35, column 18]\n n$29=_fun_operator!=(&0$?%__sil_tmp__temp_construct_n$25:iterator,&0$?%__sil_tmp__temp_construct_n$27:iterator) [line 35, column 18]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_13" ; "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_12" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_14" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_13" [label="13: Prune (true branch, for loop) \n PRUNE(n$31, true); [line 35, column 18]\n " shape="invhouse"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_13" [label="13: Prune (true branch, for loop) \n PRUNE(n$29, true); [line 35, column 18]\n " shape="invhouse"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_13" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_16" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_14" [label="14: Prune (false branch, for loop) \n PRUNE(!n$31, false); [line 35, column 18]\n " shape="invhouse"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_14" [label="14: Prune (false branch, for loop) \n PRUNE(!n$29, false); [line 35, column 18]\n " shape="invhouse"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_14" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_3" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_15" [label="15: DeclStmt \n VARIABLE_DECLARED(temp:int); [line 36, column 5]\n n$32=*&value:int [line 36, column 16]\n n$33=*&value:int [line 36, column 24]\n *&temp:int=((n$32 * n$33) + 10) [line 36, column 5]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_15" [label="15: DeclStmt \n VARIABLE_DECLARED(temp:int); [line 36, column 5]\n n$30=*&value:int [line 36, column 16]\n n$31=*&value:int [line 36, column 24]\n *&temp:int=((n$30 * n$31) + 10) [line 36, column 5]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_15" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_11" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_16" [label="16: DeclStmt \n VARIABLE_DECLARED(value:int); [line 35, column 8]\n n$35=_fun_iterator::operator*(&__begin1:iterator&) [line 35, column 18]\n *&value:int=n$35 [line 35, column 8]\n " shape="box"] +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_16" [label="16: DeclStmt \n VARIABLE_DECLARED(value:int); [line 35, column 8]\n n$33=_fun_iterator::operator*(&__begin1:iterator&) [line 35, column 18]\n *&value:int=n$33 [line 35, column 8]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_16" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_15" ; "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_17" [label="17: DeclStmt \n VARIABLE_DECLARED(__range1:vec&); [line 35, column 20]\n *&__range1:vec&=&vector [line 35, column 20]\n " shape="box"] - "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_17" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_9" ; -"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_18" [label="18: DeclStmt \n VARIABLE_DECLARED(vector:vec); [line 34, column 3]\n n$37=_fun_vec::vec(&vector:vec*,10:int) [line 34, column 7]\n " shape="box"] + "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_17" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_10" ; +"test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_18" [label="18: DeclStmt \n VARIABLE_DECLARED(vector:vec); [line 34, column 3]\n n$35=_fun_vec::vec(&vector:vec*,10:int) [line 34, column 7]\n " shape="box"] "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_18" -> "test#18241244337164948030.afc14f193ad97442f67ac7183be789bc_17" ; diff --git a/infer/tests/codetoanalyze/cpp/pulse/conditional_temporaries.cpp b/infer/tests/codetoanalyze/cpp/pulse/conditional_temporaries.cpp new file mode 100644 index 000000000..ef97ca6bb --- /dev/null +++ b/infer/tests/codetoanalyze/cpp/pulse/conditional_temporaries.cpp @@ -0,0 +1,132 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#include + +namespace condtemp { + +// keep track of how many copies are made of the object and how many +// of these copies have been destroyed +struct Counter { + std::string name; + int copies; + int copies_destroyed; + bool destroyed; + + Counter(std::string name_) + : name(name_), copies(0), copies_destroyed(0), destroyed(false) {} +}; + +struct X { + int f; // some data + Counter* counter; // nullptr if this object is a copy from another X + Counter* original_counter; // nullptr if this object was created not from a + // copy or move constructor + + X() = delete; + X(Counter* counter_) : counter(counter_), original_counter(nullptr), f(72) { + // std::cerr << "original: " << name() << "\n"; + } + X(X& x) { + std::cerr << "copy (of " << x.name() + << ") constructor called with f=" << x.f << "\n"; + f = x.f + 11; + copy_from(x); + } + X(X&& x) { + std::cerr << "move (of " << x.name() + << ") constructor called with f=" << x.f << "\n"; + f = x.f + 10; + copy_from(x); + } + ~X() { + std::cerr << "~X(" << f << ") " << name(); + if (original_counter) { + original_counter->copies_destroyed++; + } + if (counter) { + std::cerr << " original destroyed"; + counter->destroyed = true; + } + std::cerr << " \n"; + ; + } + + private: + void copy_from(X& x) { + counter = nullptr; + if (x.counter) { + original_counter = x.counter; + } else { + original_counter = x.original_counter; + } + original_counter->copies++; + } + + std::string& name() { + if (counter) { + return counter->name; + } else { + return original_counter->name; + } + } +}; + +X copy(X x) { + std::cerr << "copy(" << x.f << ")\n"; + return x; +} + +void crash(bool b) { + if (b) { + } +} + +void FP_track_copy_operations_one_copy_ok() { + Counter c_true("c_true"), c_false("c_false"); + X y(&c_false); + X x = false ? X(&c_true) : y; + std::cerr << "c_false.copies=" << c_false.copies << "\n"; + std::cerr << "c_false.copies_destroyed=" << c_false.copies_destroyed << "\n"; + std::cerr << "c_false.destroyed=" << c_false.destroyed << "\n"; + std::cerr << "c_true.copies=" << c_true.copies << "\n"; + std::cerr << "c_true.copies_destroyed=" << c_true.copies_destroyed << "\n"; + std::cerr << "c_true.destroyed=" << c_true.destroyed << "\n"; + // these values were checked against the output of the program + // compiled with clang -fno-elide-constructors, results will vary + // if we omit the elidable constructor calls + if (!(c_false.copies == 2 && c_false.copies_destroyed == 1 && + !c_false.destroyed) || + c_true.copies != 0 || c_true.copies_destroyed != 0 || c_true.destroyed) { + int* p = nullptr; + *p = 42; + } +} + +void FP_track_copy_operations_complex_ok() { + Counter c_true("c_true"), c_false("c_false"); + X y(&c_false); + X x = true ? copy(X(&c_true)) : y; + std::cerr << "c_false.copies=" << c_false.copies << "\n"; + std::cerr << "c_false.copies_destroyed=" << c_false.copies_destroyed << "\n"; + std::cerr << "c_false.destroyed=" << c_false.destroyed << "\n"; + std::cerr << "c_true.copies=" << c_true.copies << "\n"; + std::cerr << "c_true.copies_destroyed=" << c_true.copies_destroyed << "\n"; + std::cerr << "c_true.destroyed=" << c_true.destroyed << "\n"; + // these values were checked against the output of the program + // compiled with clang -fno-elide-constructors, results will vary + // if we omit the elidable constructor calls + if (!(c_true.copies == 4 && c_true.copies_destroyed == 3 && + c_true.destroyed)) { + int* p = nullptr; + *p = 42; + } +} + +} // namespace condtemp + +int main() { condtemp::FP_track_copy_operations_complex_ok(); } diff --git a/infer/tests/codetoanalyze/cpp/pulse/issues.exp b/infer/tests/codetoanalyze/cpp/pulse/issues.exp index dfb97d280..e76efa1b0 100644 --- a/infer/tests/codetoanalyze/cpp/pulse/issues.exp +++ b/infer/tests/codetoanalyze/cpp/pulse/issues.exp @@ -22,6 +22,8 @@ codetoanalyze/cpp/pulse/closures.cpp, struct_capture_by_ref_bad, 7, NULLPTR_DERE codetoanalyze/cpp/pulse/closures.cpp, struct_capture_by_val_bad, 7, NULLPTR_DEREFERENCE, no_bucket, ERROR, [invalidation part of the trace starts here,assigned,is the null pointer,use-after-lifetime part of the trace starts here,assigned,invalid access occurs here] codetoanalyze/cpp/pulse/closures.cpp, struct_capture_by_val_ok_FP, 7, NULLPTR_DEREFERENCE, no_bucket, ERROR, [invalidation part of the trace starts here,assigned,is the null pointer,use-after-lifetime part of the trace starts here,assigned,invalid access occurs here] codetoanalyze/cpp/pulse/closures.cpp, update_inside_lambda_as_argument_ok_FP, 1, NULLPTR_DEREFERENCE, no_bucket, ERROR, [invalidation part of the trace starts here,when calling `update_inside_lambda_as_argument` here,assigned,is the null pointer,use-after-lifetime part of the trace starts here,passed as argument to `update_inside_lambda_as_argument`,return from call to `update_inside_lambda_as_argument`,invalid access occurs here] +codetoanalyze/cpp/pulse/conditional_temporaries.cpp, condtemp::FP_track_copy_operations_complex_ok, 16, NULLPTR_DEREFERENCE, no_bucket, ERROR, [invalidation part of the trace starts here,assigned,is the null pointer,use-after-lifetime part of the trace starts here,assigned,invalid access occurs here] +codetoanalyze/cpp/pulse/conditional_temporaries.cpp, condtemp::FP_track_copy_operations_one_copy_ok, 17, NULLPTR_DEREFERENCE, no_bucket, ERROR, [invalidation part of the trace starts here,assigned,is the null pointer,use-after-lifetime part of the trace starts here,assigned,invalid access occurs here] codetoanalyze/cpp/pulse/conditionals.cpp, add_test3_latent, 3, USE_AFTER_FREE, no_bucket, ERROR, [*** LATENT ***,invalidation part of the trace starts here,parameter `x` of add_test3_latent,was invalidated by call to `free()`,use-after-lifetime part of the trace starts here,parameter `x` of add_test3_latent,invalid access occurs here] codetoanalyze/cpp/pulse/conditionals.cpp, add_test5_latent, 5, USE_AFTER_FREE, no_bucket, ERROR, [*** LATENT ***,invalidation part of the trace starts here,parameter `x` of add_test5_latent,was invalidated by call to `free()`,use-after-lifetime part of the trace starts here,parameter `x` of add_test5_latent,invalid access occurs here] codetoanalyze/cpp/pulse/deduplication.cpp, deduplication::SomeTemplatedClass::lifetime_error_bad, 2, USE_AFTER_DELETE, no_bucket, ERROR, [invalidation part of the trace starts here,parameter `a` of deduplication::SomeTemplatedClass::lifetime_error_bad,when calling `deduplication::SomeTemplatedClass::templated_wrapper_delete_ok` here,parameter `a` of deduplication::SomeTemplatedClass::templated_wrapper_delete_ok,was invalidated by `delete`,use-after-lifetime part of the trace starts here,parameter `a` of deduplication::SomeTemplatedClass::lifetime_error_bad,when calling `deduplication::SomeTemplatedClass::templated_wrapper_access_ok` here,parameter `a` of deduplication::SomeTemplatedClass::templated_wrapper_access_ok,invalid access occurs here] @@ -127,6 +129,5 @@ codetoanalyze/cpp/pulse/vector_iterator.cpp, iterator_after_push_back_loop_laten codetoanalyze/cpp/pulse/vector_iterator.cpp, iterator_end_next_bad, 3, VECTOR_INVALIDATION, no_bucket, ERROR, [invalidation part of the trace starts here,is pointed to by the `end()` iterator,use-after-lifetime part of the trace starts here,variable `iter` declared here,passed as argument to `std::vector::end()` (modelled),return from call to `std::vector::end()` (modelled),invalid access occurs here] codetoanalyze/cpp/pulse/vector_iterator.cpp, iterator_end_read_bad, 3, VECTOR_INVALIDATION, no_bucket, ERROR, [invalidation part of the trace starts here,is pointed to by the `end()` iterator,use-after-lifetime part of the trace starts here,variable `iter` declared here,passed as argument to `std::vector::end()` (modelled),return from call to `std::vector::end()` (modelled),invalid access occurs here] codetoanalyze/cpp/pulse/vector_iterator.cpp, iterator_next_after_emplace_bad, 3, VECTOR_INVALIDATION, no_bucket, ERROR, [invalidation part of the trace starts here,parameter `vec` of iterator_next_after_emplace_bad,was potentially invalidated by `std::vector::emplace()`,use-after-lifetime part of the trace starts here,variable `iter` declared here,passed as argument to `std::vector::begin()` (modelled),return from call to `std::vector::begin()` (modelled),invalid access occurs here] -codetoanalyze/cpp/pulse/vector_iterator.cpp, iterator_next_after_emplace_loop_latent, 2, VECTOR_INVALIDATION, no_bucket, ERROR, [*** LATENT ***,invalidation part of the trace starts here,parameter `vec` of iterator_next_after_emplace_loop_latent,was potentially invalidated by `std::vector::emplace()`,use-after-lifetime part of the trace starts here,variable `iter` declared here,passed as argument to `std::vector::begin()` (modelled),return from call to `std::vector::begin()` (modelled),invalid access occurs here] codetoanalyze/cpp/pulse/vector_iterator.cpp, iterator_prev_after_emplace_bad, 4, VECTOR_INVALIDATION, no_bucket, ERROR, [invalidation part of the trace starts here,parameter `vec` of iterator_prev_after_emplace_bad,was potentially invalidated by `std::vector::emplace()`,use-after-lifetime part of the trace starts here,variable `iter` declared here,passed as argument to `std::vector::begin()` (modelled),return from call to `std::vector::begin()` (modelled),invalid access occurs here] codetoanalyze/cpp/pulse/vector_iterator.cpp, iterator_read_after_emplace_bad, 3, VECTOR_INVALIDATION, no_bucket, ERROR, [invalidation part of the trace starts here,parameter `vec` of iterator_read_after_emplace_bad,was potentially invalidated by `std::vector::emplace()`,use-after-lifetime part of the trace starts here,variable `iter` declared here,passed as argument to `std::vector::begin()` (modelled),return from call to `std::vector::begin()` (modelled),invalid access occurs here] diff --git a/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot index a0573c0fc..1617a5b0c 100644 --- a/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot @@ -11,32 +11,32 @@ digraph cfg { "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_3" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_2" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X); [line 22, column 9]\n n$13=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X*) assign_last [line 22, column 9]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X); [line 22, column 9]\n n$8=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X*) assign_last [line 22, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_4" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" ; "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" [label="5: + \n " ] - "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_13" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" [label="6: Call _fun_binary_conditional::X::operator_bool \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X [line 22, column 9]\n n$15=_fun_binary_conditional::X::operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X&) [line 22, column 9]\n " shape="box"] + "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" ; +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" [label="6: Call _fun_binary_conditional::X::operator_bool \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X [line 22, column 9]\n n$10=_fun_binary_conditional::X::operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X&) [line 22, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" ; "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" [label="7: Prune (true branch, boolean exp) \n PRUNE(n$15, true); [line 22, column 9]\n " shape="invhouse"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" [label="7: Prune (true branch, boolean exp) \n PRUNE(n$10, true); [line 22, column 9]\n " shape="invhouse"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" [label="8: Prune (false branch, boolean exp) \n PRUNE(!n$15, false); [line 22, column 9]\n " shape="invhouse"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" [label="8: Prune (false branch, boolean exp) \n PRUNE(!n$10, false); [line 22, column 9]\n " shape="invhouse"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" [label="9: ConditionalStmt Branch \n n$16=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X&) [line 22, column 9]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" [label="9: ConditionalStmt Branch \n n$11=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X&) [line 22, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" [label="10: ConditionalStmt Branch \n n$17=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&a:binary_conditional::X&) [line 22, column 19]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" [label="10: ConditionalStmt Branch \n n$12=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&a:binary_conditional::X&) [line 22, column 19]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" ; @@ -44,22 +44,22 @@ digraph cfg { "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_11" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_4" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" [label="12: DeclStmt \n VARIABLE_DECLARED(x:binary_conditional::X); [line 22, column 3]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" [label="12: Destruction(temporaries cleanup) \n n$13=_fun_binary_conditional::X::X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X&) [line 22, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X [line 22, column 19]\n n$17=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X*) injected [line 22, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X [line 22, column 19]\n n$15=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*) injected [line 22, column 19]\n " shape="box"] - "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_11" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_13" [label="13: DeclStmt \n n$18=_fun_binary_conditional::X::X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X&) [line 22, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X [line 22, column 19]\n n$8=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X*) injected [line 22, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X [line 22, column 19]\n n$10=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*) injected [line 22, column 19]\n " shape="box"] + "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_3" ; +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_13" [label="13: DeclStmt \n VARIABLE_DECLARED(x:binary_conditional::X); [line 22, column 3]\n " shape="box"] - "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_13" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_3" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_14" [label="14: DeclStmt \n VARIABLE_DECLARED(a:binary_conditional::X); [line 21, column 3]\n n$19=_fun_binary_conditional::X::X(&a:binary_conditional::X*) [line 21, column 5]\n " shape="box"] + "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_13" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_11" ; +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_14" [label="14: DeclStmt \n VARIABLE_DECLARED(a:binary_conditional::X); [line 21, column 3]\n n$18=_fun_binary_conditional::X::X(&a:binary_conditional::X*) [line 21, column 5]\n " shape="box"] - "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_14" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_1" [label="1: Start binary_conditional::conditional\nFormals: \nLocals: x:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$9:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$14:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X a:binary_conditional::X \n " color=yellow style=filled] + "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_14" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_13" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_1" [label="1: Start binary_conditional::conditional\nFormals: \nLocals: x:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X 0$?%__sil_tmp_temp_marker_n$8:_Bool a:binary_conditional::X \n " color=yellow style=filled] - "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_1" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_15" ; + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_1" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_21" ; "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_2" [label="2: Exit binary_conditional::conditional \n " color=yellow style=filled] @@ -71,32 +71,32 @@ digraph cfg { "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_4" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_14" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:binary_conditional::X); [line 27, column 9]\n n$11=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$9:binary_conditional::X*) assign_last [line 27, column 9]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X); [line 27, column 9]\n n$10=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X*) assign_last [line 27, column 9]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" [label="6: Call _fun_binary_conditional::X::operator_bool \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:binary_conditional::X [line 27, column 9]\n n$13=_fun_binary_conditional::X::operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$9:binary_conditional::X&) [line 27, column 9]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" [label="6: Call _fun_binary_conditional::X::operator_bool \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X [line 27, column 9]\n n$12=_fun_binary_conditional::X::operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X&) [line 27, column 9]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" ; "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_6" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" [label="7: Prune (true branch, boolean exp) \n PRUNE(n$13, true); [line 27, column 9]\n " shape="invhouse"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" [label="7: Prune (true branch, boolean exp) \n PRUNE(n$12, true); [line 27, column 9]\n " shape="invhouse"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_7" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" [label="8: Prune (false branch, boolean exp) \n PRUNE(!n$13, false); [line 27, column 9]\n " shape="invhouse"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" [label="8: Prune (false branch, boolean exp) \n PRUNE(!n$12, false); [line 27, column 9]\n " shape="invhouse"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_8" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$14:binary_conditional::X); [line 27, column 18]\n n$16=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$14:binary_conditional::X*) assign_last [line 27, column 18]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X); [line 27, column 18]\n n$14=_fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X*) assign_last [line 27, column 18]\n *&0$?%__sil_tmp_temp_marker_n$8:_Bool=1 [line 27, column 18]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_9" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" [label="10: ConditionalStmt Branch \n n$17=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$14:binary_conditional::X&) [line 27, column 18]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" [label="10: ConditionalStmt Branch \n n$15=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X&) [line 27, column 18]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_10" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_4" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" [label="11: ConditionalStmt Branch \n n$18=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&a:binary_conditional::X&) [line 27, column 27]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" [label="11: ConditionalStmt Branch \n n$16=_fun_binary_conditional::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*,&a:binary_conditional::X&) [line 27, column 27]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_11" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_4" ; @@ -104,18 +104,43 @@ digraph cfg { "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_12" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_5" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_13" [label="13: DeclStmt \n VARIABLE_DECLARED(x:binary_conditional::X); [line 27, column 3]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_13" [label="13: ExprWithCleanups \n VARIABLE_DECLARED(0$?%__sil_tmp_temp_marker_n$8:_Bool); [line 27, column 9]\n *&0$?%__sil_tmp_temp_marker_n$8:_Bool=0 [line 27, column 9]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_13" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_12" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_14" [label="14: DeclStmt \n n$19=_fun_binary_conditional::X::X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X&) [line 27, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X [line 27, column 27]\n n$7=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*) injected [line 27, column 27]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_14" [label="14: ExprWithCleanups \n n$17=_fun_binary_conditional::X::X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X&) [line 27, column 9]\n " shape="box"] - "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_14" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_3" ; -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_15" [label="15: DeclStmt \n VARIABLE_DECLARED(a:binary_conditional::X); [line 26, column 3]\n n$20=_fun_binary_conditional::X::X(&a:binary_conditional::X*) [line 26, column 5]\n " shape="box"] + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_14" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_17" ; + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_14" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_18" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_15" [label="15: + \n " ] - "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_15" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_13" ; + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_15" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_19" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_16" [label="16: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X [line 27, column 27]\n n$23=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$7:binary_conditional::X*) injected [line 27, column 27]\n " shape="box"] + + + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_16" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_15" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_17" [label="17: Prune (true branch, if) \n n$24=*&0$?%__sil_tmp_temp_marker_n$8:_Bool [line 27, column 27]\n PRUNE(n$24, true); [line 27, column 27]\n " shape="invhouse"] + + + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_17" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_16" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_18" [label="18: Prune (false branch, if) \n n$24=*&0$?%__sil_tmp_temp_marker_n$8:_Bool [line 27, column 27]\n PRUNE(!n$24, false); [line 27, column 27]\n " shape="invhouse"] + + + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_18" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_15" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_19" [label="19: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X [line 27, column 27]\n n$21=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X*) injected [line 27, column 27]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X [line 27, column 27]\n n$19=_fun_binary_conditional::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$5:binary_conditional::X*) injected [line 27, column 27]\n " shape="box"] + + + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_19" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_3" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_20" [label="20: DeclStmt \n VARIABLE_DECLARED(x:binary_conditional::X); [line 27, column 3]\n " shape="box"] + + + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_20" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_13" ; +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_21" [label="21: DeclStmt \n VARIABLE_DECLARED(a:binary_conditional::X); [line 26, column 3]\n n$25=_fun_binary_conditional::X::X(&a:binary_conditional::X*) [line 26, column 5]\n " shape="box"] + + + "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_21" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_20" ; "getX#binary_conditional(class binary_conditional::X)#7708042186122353096.8825a5a3afa327848f6dcf77ec0e3f60_1" [label="1: Start binary_conditional::getX\nFormals: __return_param:binary_conditional::X*\nLocals: x:binary_conditional::X \n " color=yellow style=filled] diff --git a/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_array.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_array.cpp.dot index 1b667ebbe..f77e83e1e 100644 --- a/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_array.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_array.cpp.dot @@ -3,7 +3,7 @@ digraph cfg { "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_1" [label="1: Start array_of_person\nFormals: \nLocals: arr:Person[10*4] 0$?%__sil_tmpSIL_materialize_temp__n$1:Person 0$?%__sil_tmpSIL_materialize_temp__n$2:Person 0$?%__sil_tmpSIL_materialize_temp__n$3:Person \n " color=yellow style=filled] - "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_1" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_8" ; + "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_1" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_9" ; "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_2" [label="2: Exit array_of_person \n " color=yellow style=filled] @@ -15,26 +15,26 @@ digraph cfg { "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_4" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_2" ; -"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:Person); [line 16, column 21]\n n$11=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) [line 16, column 21]\n " shape="box"] +"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:Person); [line 16, column 21]\n n$4=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) [line 16, column 21]\n " shape="box"] "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_5" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_6" ; -"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:Person); [line 16, column 31]\n n$13=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) [line 16, column 31]\n " shape="box"] +"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:Person); [line 16, column 31]\n n$6=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) [line 16, column 31]\n " shape="box"] "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_6" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_7" ; -"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Person); [line 16, column 41]\n n$15=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) [line 16, column 41]\n " shape="box"] +"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Person); [line 16, column 41]\n n$8=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) [line 16, column 41]\n " shape="box"] - "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_7" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_9" ; -"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_8" [label="8: DeclStmt \n VARIABLE_DECLARED(arr:Person[10*4]); [line 16, column 3]\n " shape="box"] + "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_7" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_8" ; +"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_8" [label="8: Destruction(temporaries cleanup) \n n$5=_fun_Person::Person(&arr[0]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$1:Person&) [line 16, column 21]\n n$7=_fun_Person::Person(&arr[1]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$2:Person&) [line 16, column 31]\n n$9=_fun_Person::Person(&arr[2]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Person&) [line 16, column 41]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Person [line 16, column 49]\n n$15=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) injected [line 16, column 49]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:Person [line 16, column 49]\n n$13=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) injected [line 16, column 49]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:Person [line 16, column 49]\n n$11=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) injected [line 16, column 49]\n " shape="box"] - "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_8" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_5" ; -"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_9" [label="9: DeclStmt \n n$12=_fun_Person::Person(&arr[0]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$1:Person&) [line 16, column 21]\n n$14=_fun_Person::Person(&arr[1]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$2:Person&) [line 16, column 31]\n n$16=_fun_Person::Person(&arr[2]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Person&) [line 16, column 41]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Person [line 16, column 49]\n n$5=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) injected [line 16, column 49]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:Person [line 16, column 49]\n n$7=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) injected [line 16, column 49]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:Person [line 16, column 49]\n n$9=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) injected [line 16, column 49]\n " shape="box"] + "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_8" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_3" ; +"array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_9" [label="9: DeclStmt \n VARIABLE_DECLARED(arr:Person[10*4]); [line 16, column 3]\n " shape="box"] - "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_9" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_3" ; + "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_9" -> "array_of_person#7945672701495610995.0fecf6778237d47d15191cac7fab514c_5" ; "initialization_c_style#16495589501342328206.0d90448020e72c05f693b9221dac03f8_1" [label="1: Start initialization_c_style\nFormals: \nLocals: z2:Z z:Z[2*8] \n " color=yellow style=filled] @@ -80,7 +80,7 @@ digraph cfg { "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_1" [label="1: Start matrix_of_person\nFormals: \nLocals: arr:Person[2*4][2*8] 0$?%__sil_tmpSIL_materialize_temp__n$1:Person 0$?%__sil_tmpSIL_materialize_temp__n$2:Person 0$?%__sil_tmpSIL_materialize_temp__n$3:Person 0$?%__sil_tmpSIL_materialize_temp__n$4:Person \n " color=yellow style=filled] - "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_1" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_9" ; + "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_1" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_10" ; "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_2" [label="2: Exit matrix_of_person \n " color=yellow style=filled] @@ -92,30 +92,30 @@ digraph cfg { "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_4" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_2" ; -"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:Person); [line 21, column 23]\n n$14=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) [line 21, column 23]\n " shape="box"] +"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:Person); [line 21, column 23]\n n$5=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) [line 21, column 23]\n " shape="box"] "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_5" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_6" ; -"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:Person); [line 21, column 33]\n n$16=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) [line 21, column 33]\n " shape="box"] +"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:Person); [line 21, column 33]\n n$7=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) [line 21, column 33]\n " shape="box"] "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_6" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_7" ; -"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Person); [line 21, column 43]\n n$18=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) [line 21, column 43]\n " shape="box"] +"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Person); [line 21, column 43]\n n$9=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) [line 21, column 43]\n " shape="box"] "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_7" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_8" ; -"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_8" [label="8: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:Person); [line 21, column 53]\n n$20=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$4:Person*) [line 21, column 53]\n " shape="box"] +"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_8" [label="8: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:Person); [line 21, column 53]\n n$11=_fun_Person::Person(&0$?%__sil_tmpSIL_materialize_temp__n$4:Person*) [line 21, column 53]\n " shape="box"] - "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_8" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_10" ; -"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_9" [label="9: DeclStmt \n VARIABLE_DECLARED(arr:Person[2*4][2*8]); [line 21, column 3]\n " shape="box"] + "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_8" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_9" ; +"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_9" [label="9: Destruction(temporaries cleanup) \n n$6=_fun_Person::Person(&arr[0][0]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$1:Person&) [line 21, column 23]\n n$8=_fun_Person::Person(&arr[0][1]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$2:Person&) [line 21, column 33]\n n$10=_fun_Person::Person(&arr[1][0]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Person&) [line 21, column 43]\n n$12=_fun_Person::Person(&arr[1][1]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$4:Person&) [line 21, column 53]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:Person [line 21, column 61]\n n$20=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$4:Person*) injected [line 21, column 61]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Person [line 21, column 61]\n n$18=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) injected [line 21, column 61]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:Person [line 21, column 61]\n n$16=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) injected [line 21, column 61]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:Person [line 21, column 61]\n n$14=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) injected [line 21, column 61]\n " shape="box"] - "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_9" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_5" ; -"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_10" [label="10: DeclStmt \n n$15=_fun_Person::Person(&arr[0][0]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$1:Person&) [line 21, column 23]\n n$17=_fun_Person::Person(&arr[0][1]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$2:Person&) [line 21, column 33]\n n$19=_fun_Person::Person(&arr[1][0]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Person&) [line 21, column 43]\n n$21=_fun_Person::Person(&arr[1][1]:Person*,&0$?%__sil_tmpSIL_materialize_temp__n$4:Person&) [line 21, column 53]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:Person [line 21, column 61]\n n$6=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$4:Person*) injected [line 21, column 61]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Person [line 21, column 61]\n n$8=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$3:Person*) injected [line 21, column 61]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:Person [line 21, column 61]\n n$10=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$2:Person*) injected [line 21, column 61]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:Person [line 21, column 61]\n n$12=_fun_Person::~Person(&0$?%__sil_tmpSIL_materialize_temp__n$1:Person*) injected [line 21, column 61]\n " shape="box"] + "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_9" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_3" ; +"matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_10" [label="10: DeclStmt \n VARIABLE_DECLARED(arr:Person[2*4][2*8]); [line 21, column 3]\n " shape="box"] - "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_10" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_3" ; + "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_10" -> "matrix_of_person#2881910427017022824.27f7f148c4911c13b3061cef6fe2673d_5" ; "Person#Person#{13294141311747224102}.29587c0ac2200b59d0b19a07fdc656e5_1" [label="1: Start Person::Person\nFormals: this:Person*\nLocals: \n " color=yellow style=filled] diff --git a/infer/tests/codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp.dot index 6e25bbde4..0e5606b8f 100644 --- a/infer/tests/codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/constructors/copy_move_constructor.cpp.dot @@ -30,7 +30,7 @@ digraph cfg { "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_1" [label="1: Start copy_move_constructor::copyX_moveX_div1\nFormals: \nLocals: d2:int 0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X d1:int x2:copy_move_constructor::X x1:copy_move_constructor::X \n " color=yellow style=filled] - "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_1" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_11" ; + "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_1" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_12" ; "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_2" [label="2: Exit copy_move_constructor::copyX_moveX_div1 \n " color=yellow style=filled] @@ -42,34 +42,38 @@ digraph cfg { "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_4" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_2" ; -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X); [line 68, column 16]\n n$12=_fun_copy_move_constructor::getX(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X*) assign_last [line 68, column 16]\n " shape="box"] +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X); [line 68, column 16]\n n$9=_fun_copy_move_constructor::getX(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X*) assign_last [line 68, column 16]\n " shape="box"] - "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_5" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_7" ; -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_6" [label="6: DeclStmt \n VARIABLE_DECLARED(d2:int); [line 68, column 3]\n " shape="box"] + "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_5" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_6" ; +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_6" [label="6: Destruction(temporaries cleanup) \n n$10=*&0$?%__sil_tmpSIL_materialize_temp__n$7.f:int [line 68, column 16]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X [line 68, column 24]\n n$12=_fun_copy_move_constructor::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X*) injected [line 68, column 24]\n " shape="box"] - "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_6" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_5" ; -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_7" [label="7: DeclStmt \n n$13=*&0$?%__sil_tmpSIL_materialize_temp__n$7.f:int [line 68, column 16]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X [line 68, column 24]\n n$9=_fun_copy_move_constructor::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::X*) injected [line 68, column 24]\n *&d2:int=(1 / n$13) [line 68, column 3]\n " shape="box"] + "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_6" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_8" ; +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_7" [label="7: DeclStmt \n VARIABLE_DECLARED(d2:int); [line 68, column 3]\n " shape="box"] - "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_7" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_3" ; -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_8" [label="8: DeclStmt \n VARIABLE_DECLARED(d1:int); [line 67, column 3]\n n$14=*&x2.f:int [line 67, column 16]\n *&d1:int=(1 / n$14) [line 67, column 3]\n " shape="box"] + "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_7" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_5" ; +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_8" [label="8: DeclStmt \n *&d2:int=(1 / n$10) [line 68, column 3]\n " shape="box"] - "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_8" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_6" ; -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x2:copy_move_constructor::X); [line 66, column 3]\n n$15=_fun_copy_move_constructor::X::X(&x2:copy_move_constructor::X*,&x1:copy_move_constructor::X&) [line 66, column 10]\n " shape="box"] + "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_8" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_3" ; +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_9" [label="9: DeclStmt \n VARIABLE_DECLARED(d1:int); [line 67, column 3]\n n$13=*&x2.f:int [line 67, column 16]\n *&d1:int=(1 / n$13) [line 67, column 3]\n " shape="box"] - "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_9" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_8" ; -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_10" [label="10: BinaryOperatorStmt: Assign \n *&x1.f:int=1 [line 65, column 3]\n " shape="box"] + "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_9" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_7" ; +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_10" [label="10: DeclStmt \n VARIABLE_DECLARED(x2:copy_move_constructor::X); [line 66, column 3]\n n$14=_fun_copy_move_constructor::X::X(&x2:copy_move_constructor::X*,&x1:copy_move_constructor::X&) [line 66, column 10]\n " shape="box"] "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_10" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_9" ; -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_11" [label="11: DeclStmt \n VARIABLE_DECLARED(x1:copy_move_constructor::X); [line 64, column 3]\n n$16=_fun_copy_move_constructor::X::X(&x1:copy_move_constructor::X*) [line 64, column 5]\n " shape="box"] +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_11" [label="11: BinaryOperatorStmt: Assign \n *&x1.f:int=1 [line 65, column 3]\n " shape="box"] "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_11" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_10" ; +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_12" [label="12: DeclStmt \n VARIABLE_DECLARED(x1:copy_move_constructor::X); [line 64, column 3]\n n$15=_fun_copy_move_constructor::X::X(&x1:copy_move_constructor::X*) [line 64, column 5]\n " shape="box"] + + + "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_12" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_11" ; "copyY_div0#copy_move_constructor#17079397845524781987.61211209ec1f961073f3adafcd080bfb_1" [label="1: Start copy_move_constructor::copyY_div0\nFormals: \nLocals: y2:copy_move_constructor::Y y1:copy_move_constructor::Y \n " color=yellow style=filled] @@ -100,7 +104,7 @@ digraph cfg { "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_1" [label="1: Start copy_move_constructor::copyY_moveY_div1\nFormals: \nLocals: d2:int 0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y d1:int y2:copy_move_constructor::Y y1:copy_move_constructor::Y \n " color=yellow style=filled] - "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_1" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_11" ; + "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_1" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_12" ; "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_2" [label="2: Exit copy_move_constructor::copyY_moveY_div1 \n " color=yellow style=filled] @@ -112,34 +116,38 @@ digraph cfg { "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_4" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_2" ; -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y); [line 77, column 16]\n n$12=_fun_copy_move_constructor::getY(2:int,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y*) assign_last [line 77, column 16]\n " shape="box"] +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y); [line 77, column 16]\n n$9=_fun_copy_move_constructor::getY(2:int,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y*) assign_last [line 77, column 16]\n " shape="box"] - "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_5" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_7" ; -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_6" [label="6: DeclStmt \n VARIABLE_DECLARED(d2:int); [line 77, column 3]\n " shape="box"] + "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_5" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_6" ; +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_6" [label="6: Destruction(temporaries cleanup) \n n$10=*&0$?%__sil_tmpSIL_materialize_temp__n$7.f:int [line 77, column 16]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y [line 77, column 24]\n n$12=_fun_copy_move_constructor::Y::~Y(&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y*) injected [line 77, column 24]\n " shape="box"] - "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_6" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_5" ; -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_7" [label="7: DeclStmt \n n$13=*&0$?%__sil_tmpSIL_materialize_temp__n$7.f:int [line 77, column 16]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y [line 77, column 24]\n n$9=_fun_copy_move_constructor::Y::~Y(&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y*) injected [line 77, column 24]\n *&d2:int=(1 / n$13) [line 77, column 3]\n " shape="box"] + "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_6" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_8" ; +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_7" [label="7: DeclStmt \n VARIABLE_DECLARED(d2:int); [line 77, column 3]\n " shape="box"] - "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_7" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_3" ; -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_8" [label="8: DeclStmt \n VARIABLE_DECLARED(d1:int); [line 76, column 3]\n n$14=*&y2.f:int [line 76, column 16]\n *&d1:int=(1 / n$14) [line 76, column 3]\n " shape="box"] + "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_7" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_5" ; +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_8" [label="8: DeclStmt \n *&d2:int=(1 / n$10) [line 77, column 3]\n " shape="box"] - "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_8" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_6" ; -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_9" [label="9: DeclStmt \n VARIABLE_DECLARED(y2:copy_move_constructor::Y); [line 75, column 3]\n n$15=_fun_copy_move_constructor::Y::Y(&y2:copy_move_constructor::Y*,&y1:copy_move_constructor::Y&) [line 75, column 10]\n " shape="box"] + "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_8" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_3" ; +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_9" [label="9: DeclStmt \n VARIABLE_DECLARED(d1:int); [line 76, column 3]\n n$13=*&y2.f:int [line 76, column 16]\n *&d1:int=(1 / n$13) [line 76, column 3]\n " shape="box"] - "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_9" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_8" ; -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_10" [label="10: BinaryOperatorStmt: Assign \n *&y1.f:int=1 [line 74, column 3]\n " shape="box"] + "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_9" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_7" ; +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_10" [label="10: DeclStmt \n VARIABLE_DECLARED(y2:copy_move_constructor::Y); [line 75, column 3]\n n$14=_fun_copy_move_constructor::Y::Y(&y2:copy_move_constructor::Y*,&y1:copy_move_constructor::Y&) [line 75, column 10]\n " shape="box"] "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_10" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_9" ; -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_11" [label="11: DeclStmt \n VARIABLE_DECLARED(y1:copy_move_constructor::Y); [line 73, column 3]\n n$16=_fun_copy_move_constructor::Y::Y(&y1:copy_move_constructor::Y*) [line 73, column 5]\n " shape="box"] +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_11" [label="11: BinaryOperatorStmt: Assign \n *&y1.f:int=1 [line 74, column 3]\n " shape="box"] "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_11" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_10" ; +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_12" [label="12: DeclStmt \n VARIABLE_DECLARED(y1:copy_move_constructor::Y); [line 73, column 3]\n n$15=_fun_copy_move_constructor::Y::Y(&y1:copy_move_constructor::Y*) [line 73, column 5]\n " shape="box"] + + + "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_12" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_11" ; "getX#copy_move_constructor(class copy_move_constructor::X)#2211685783611424509.3ed1bf77442fb4e47b3afdd1dd669b7a_1" [label="1: Start copy_move_constructor::getX\nFormals: f:int __return_param:copy_move_constructor::X*\nLocals: x:copy_move_constructor::X \n " color=yellow style=filled] @@ -201,15 +209,15 @@ digraph cfg { "moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_2" [label="2: Exit copy_move_constructor::moveX_div0 \n " color=yellow style=filled] -"moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X); [line 46, column 31]\n n$5=_fun_copy_move_constructor::getX(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X*) assign_last [line 46, column 31]\n " shape="box"] +"moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X); [line 46, column 31]\n n$2=_fun_copy_move_constructor::getX(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X*) assign_last [line 46, column 31]\n " shape="box"] "moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_3" -> "moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_4" ; -"moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_4" [label="4: Return Stmt \n n$6=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 46, column 31]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X [line 46, column 39]\n n$2=_fun_copy_move_constructor::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X*) injected [line 46, column 39]\n " shape="box"] +"moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_4" [label="4: Destruction(temporaries cleanup) \n n$3=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 46, column 31]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X [line 46, column 39]\n n$5=_fun_copy_move_constructor::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::X*) injected [line 46, column 39]\n " shape="box"] "moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_4" -> "moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_5" ; -"moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_5" [label="5: Return Stmt \n *&return:int=(1 / n$6) [line 46, column 20]\n " shape="box"] +"moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_5" [label="5: Return Stmt \n *&return:int=(1 / n$3) [line 46, column 20]\n " shape="box"] "moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_5" -> "moveX_div0#copy_move_constructor#2229557375196326562.f23c95e594ab41ba50090dccb989c3e3_2" ; @@ -220,22 +228,22 @@ digraph cfg { "moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_2" [label="2: Exit copy_move_constructor::moveY_div0 \n " color=yellow style=filled] -"moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y); [line 55, column 31]\n n$5=_fun_copy_move_constructor::getY(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y*) assign_last [line 55, column 31]\n " shape="box"] +"moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y); [line 55, column 31]\n n$2=_fun_copy_move_constructor::getY(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y*) assign_last [line 55, column 31]\n " shape="box"] "moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_3" -> "moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_4" ; -"moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_4" [label="4: Return Stmt \n n$6=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 55, column 31]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y [line 55, column 39]\n n$2=_fun_copy_move_constructor::Y::~Y(&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y*) injected [line 55, column 39]\n " shape="box"] +"moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_4" [label="4: Destruction(temporaries cleanup) \n n$3=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 55, column 31]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y [line 55, column 39]\n n$5=_fun_copy_move_constructor::Y::~Y(&0$?%__sil_tmpSIL_materialize_temp__n$0:copy_move_constructor::Y*) injected [line 55, column 39]\n " shape="box"] "moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_4" -> "moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_5" ; -"moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_5" [label="5: Return Stmt \n *&return:int=(1 / n$6) [line 55, column 20]\n " shape="box"] +"moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_5" [label="5: Return Stmt \n *&return:int=(1 / n$3) [line 55, column 20]\n " shape="box"] "moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_5" -> "moveY_div0#copy_move_constructor#15307842160732522395.eee7693240d3ce27d5c30f34d771cb57_2" ; "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_1" [label="1: Start copy_move_constructor::moveY_moveY_copyY_div0\nFormals: \nLocals: y2:copy_move_constructor::Y y1:copy_move_constructor::Y 0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const \n " color=yellow style=filled] - "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_1" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_7" ; + "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_1" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_8" ; "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_2" [label="2: Exit copy_move_constructor::moveY_moveY_copyY_div0 \n " color=yellow style=filled] @@ -251,18 +259,18 @@ digraph cfg { "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_5" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_3" ; -"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const ); [line 58, column 10]\n n$12=_fun_copy_move_constructor::getY(2:int,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y*) assign_last [line 58, column 10]\n " shape="box"] +"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const ); [line 58, column 10]\n n$9=_fun_copy_move_constructor::getY(2:int,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y*) assign_last [line 58, column 10]\n " shape="box"] - "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_6" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_8" ; -"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_7" [label="7: DeclStmt \n VARIABLE_DECLARED(y1:copy_move_constructor::Y); [line 58, column 3]\n " shape="box"] + "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_6" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_7" ; +"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_7" [label="7: Destruction(temporaries cleanup) \n n$10=_fun_copy_move_constructor::Y::Y(&y1:copy_move_constructor::Y*,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const &) [line 58, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const [line 58, column 16]\n n$12=_fun_copy_move_constructor::Y::~Y(&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const *) injected [line 58, column 16]\n " shape="box"] - "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_7" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_6" ; -"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_8" [label="8: DeclStmt \n n$13=_fun_copy_move_constructor::Y::Y(&y1:copy_move_constructor::Y*,&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const &) [line 58, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const [line 58, column 16]\n n$9=_fun_copy_move_constructor::Y::~Y(&0$?%__sil_tmpSIL_materialize_temp__n$7:copy_move_constructor::Y const *) injected [line 58, column 16]\n " shape="box"] + "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_7" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_5" ; +"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_8" [label="8: DeclStmt \n VARIABLE_DECLARED(y1:copy_move_constructor::Y); [line 58, column 3]\n " shape="box"] - "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_8" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_5" ; + "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_8" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_6" ; "X#X#copy_move_constructor#{10174102600918728520|constexpr}.7f1f4443383b6eabdf400de956c7f6af_1" [label="1: Start copy_move_constructor::X::X\nFormals: this:copy_move_constructor::X* __param_0:copy_move_constructor::X&\nLocals: \n " color=yellow style=filled] diff --git a/infer/tests/codetoanalyze/cpp/shared/constructors/temp_object.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/constructors/temp_object.cpp.dot index f5f10e57f..fd14f140f 100644 --- a/infer/tests/codetoanalyze/cpp/shared/constructors/temp_object.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/constructors/temp_object.cpp.dot @@ -3,7 +3,7 @@ digraph cfg { "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_1" [label="1: Start temp_object::assign_temp_div0\nFormals: \nLocals: x:temp_object::X 0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const \n " color=yellow style=filled] - "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_1" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_6" ; + "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_1" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_7" ; "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_2" [label="2: Exit temp_object::assign_temp_div0 \n " color=yellow style=filled] @@ -15,18 +15,18 @@ digraph cfg { "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_4" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_2" ; -"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const ); [line 27, column 9]\n n$9=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const *,0:int,1:int) [line 27, column 9]\n " shape="box"] +"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const ); [line 27, column 9]\n n$6=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const *,0:int,1:int) [line 27, column 9]\n " shape="box"] - "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_5" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_7" ; -"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_6" [label="6: DeclStmt \n VARIABLE_DECLARED(x:temp_object::X); [line 27, column 3]\n " shape="box"] + "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_5" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_6" ; +"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_6" [label="6: Destruction(temporaries cleanup) \n n$7=_fun_temp_object::X::X(&x:temp_object::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const &) [line 27, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const [line 27, column 15]\n n$9=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const *) injected [line 27, column 15]\n " shape="box"] - "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_6" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_5" ; -"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_7" [label="7: DeclStmt \n n$10=_fun_temp_object::X::X(&x:temp_object::X*,&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const &) [line 27, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const [line 27, column 15]\n n$7=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$5:temp_object::X const *) injected [line 27, column 15]\n " shape="box"] + "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_6" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_3" ; +"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_7" [label="7: DeclStmt \n VARIABLE_DECLARED(x:temp_object::X); [line 27, column 3]\n " shape="box"] - "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_7" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_3" ; + "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_7" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_5" ; "div#temp_object#8235742009211935218.2061ea7bd543a21042cf00f2dbeefd91_1" [label="1: Start temp_object::div\nFormals: f:int\nLocals: \n " color=yellow style=filled] @@ -45,22 +45,22 @@ digraph cfg { "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_1" [label="1: Start temp_object::getX\nFormals: a:int b:int __return_param:temp_object::X*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const \n " color=yellow style=filled] - "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_1" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_4" ; + "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_1" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_5" ; "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_2" [label="2: Exit temp_object::getX \n " color=yellow style=filled] -"getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const ); [line 24, column 31]\n n$5=*&a:int [line 24, column 33]\n n$6=*&b:int [line 24, column 36]\n n$7=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const *,n$5:int,n$6:int) [line 24, column 31]\n " shape="box"] +"getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const ); [line 24, column 31]\n n$2=*&a:int [line 24, column 33]\n n$3=*&b:int [line 24, column 36]\n n$4=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const *,n$2:int,n$3:int) [line 24, column 31]\n " shape="box"] - "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_3" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_5" ; -"getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_4" [label="4: Return Stmt \n n$0=*&__return_param:temp_object::X* [line 24, column 24]\n " shape="box"] + "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_3" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_4" ; +"getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_4" [label="4: Destruction(temporaries cleanup) \n n$5=_fun_temp_object::X::X(n$0:temp_object::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const &) [line 24, column 31]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const [line 24, column 37]\n n$7=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const *) injected [line 24, column 37]\n " shape="box"] - "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_4" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_3" ; -"getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_5" [label="5: Return Stmt \n n$8=_fun_temp_object::X::X(n$0:temp_object::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const &) [line 24, column 31]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const [line 24, column 37]\n n$3=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:temp_object::X const *) injected [line 24, column 37]\n " shape="box"] + "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_4" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_6" ; +"getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_5" [label="5: Return Stmt \n n$0=*&__return_param:temp_object::X* [line 24, column 24]\n " shape="box"] - "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_5" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_6" ; + "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_5" -> "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_3" ; "getX#temp_object(class temp_object::X)#4720444219866178245.c6d7bacbd2aa751dffef569ff17890e7_6" [label="6: Return Stmt \n " shape="box"] @@ -72,15 +72,15 @@ digraph cfg { "getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_2" [label="2: Exit temp_object::getX_field_div0 \n " color=yellow style=filled] -"getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 37, column 36]\n n$5=_fun_temp_object::getX(0:int,1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) assign_last [line 37, column 36]\n " shape="box"] +"getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 37, column 36]\n n$2=_fun_temp_object::getX(0:int,1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) assign_last [line 37, column 36]\n " shape="box"] "getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_3" -> "getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_4" ; -"getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_4" [label="4: Return Stmt \n n$6=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 37, column 36]\n n$7=_fun_temp_object::div(n$6:int) [line 37, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 37, column 48]\n n$2=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 37, column 48]\n " shape="box"] +"getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_4" [label="4: Destruction(temporaries cleanup) \n n$3=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 37, column 36]\n n$4=_fun_temp_object::div(n$3:int) [line 37, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 37, column 48]\n n$6=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 37, column 48]\n " shape="box"] "getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_4" -> "getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_5" ; -"getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_5" [label="5: Return Stmt \n *&return:int=n$7 [line 37, column 25]\n " shape="box"] +"getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_5" [label="5: Return Stmt \n *&return:int=n$4 [line 37, column 25]\n " shape="box"] "getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_5" -> "getX_field_div0#temp_object#12698122843139253036.854c4a3940ca05110785248e1303db49_2" ; @@ -91,15 +91,15 @@ digraph cfg { "getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_2" [label="2: Exit temp_object::getX_field_div1 \n " color=yellow style=filled] -"getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 43, column 36]\n n$5=_fun_temp_object::getX(1:int,0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) assign_last [line 43, column 36]\n " shape="box"] +"getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 43, column 36]\n n$2=_fun_temp_object::getX(1:int,0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) assign_last [line 43, column 36]\n " shape="box"] "getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_3" -> "getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_4" ; -"getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_4" [label="4: Return Stmt \n n$6=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 43, column 36]\n n$7=_fun_temp_object::div(n$6:int) [line 43, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 43, column 48]\n n$2=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 43, column 48]\n " shape="box"] +"getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_4" [label="4: Destruction(temporaries cleanup) \n n$3=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 43, column 36]\n n$4=_fun_temp_object::div(n$3:int) [line 43, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 43, column 48]\n n$6=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 43, column 48]\n " shape="box"] "getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_4" -> "getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_5" ; -"getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_5" [label="5: Return Stmt \n *&return:int=n$7 [line 43, column 25]\n " shape="box"] +"getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_5" [label="5: Return Stmt \n *&return:int=n$4 [line 43, column 25]\n " shape="box"] "getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_5" -> "getX_field_div1#temp_object#11953596240866039963.ee557e5aaabf95f2c8b1284adfc7249e_2" ; @@ -110,15 +110,15 @@ digraph cfg { "getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_2" [label="2: Exit temp_object::getX_method_div0 \n " color=yellow style=filled] -"getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 39, column 33]\n n$5=_fun_temp_object::getX(0:int,1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) assign_last [line 39, column 33]\n " shape="box"] +"getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 39, column 33]\n n$2=_fun_temp_object::getX(0:int,1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) assign_last [line 39, column 33]\n " shape="box"] "getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_3" -> "getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_4" ; -"getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_4" [label="4: Return Stmt \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 39, column 33]\n n$7=_fun_temp_object::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X&) [line 39, column 33]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 39, column 48]\n n$2=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 39, column 48]\n " shape="box"] +"getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_4" [label="4: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 39, column 33]\n n$4=_fun_temp_object::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X&) [line 39, column 33]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 39, column 48]\n n$6=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 39, column 48]\n " shape="box"] "getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_4" -> "getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_5" ; -"getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_5" [label="5: Return Stmt \n *&return:int=n$7 [line 39, column 26]\n " shape="box"] +"getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_5" [label="5: Return Stmt \n *&return:int=n$4 [line 39, column 26]\n " shape="box"] "getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_5" -> "getX_method_div0#temp_object#10654710522454889600.9c743f651914acdd07ad2c70becfd89c_2" ; @@ -129,15 +129,15 @@ digraph cfg { "temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_2" [label="2: Exit temp_object::temp_field2_div0 \n " color=yellow style=filled] -"temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 33, column 37]\n n$4=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,0:int) [line 33, column 37]\n " shape="box"] +"temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 33, column 37]\n n$1=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,0:int) [line 33, column 37]\n " shape="box"] "temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_3" -> "temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_4" ; -"temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_4" [label="4: Return Stmt \n n$5=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 33, column 37]\n n$6=_fun_temp_object::div(n$5:int) [line 33, column 33]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 33, column 43]\n n$2=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 33, column 43]\n " shape="box"] +"temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_4" [label="4: Destruction(temporaries cleanup) \n n$2=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 33, column 37]\n n$3=_fun_temp_object::div(n$2:int) [line 33, column 33]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 33, column 43]\n n$5=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 33, column 43]\n " shape="box"] "temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_4" -> "temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_5" ; -"temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_5" [label="5: Return Stmt \n *&return:int=n$6 [line 33, column 26]\n " shape="box"] +"temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_5" [label="5: Return Stmt \n *&return:int=n$3 [line 33, column 26]\n " shape="box"] "temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_5" -> "temp_field2_div0#temp_object#17763200808338657027.dd874be310bbf8e78129b073d73ad49f_2" ; @@ -148,15 +148,15 @@ digraph cfg { "temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_2" [label="2: Exit temp_object::temp_field_div0 \n " color=yellow style=filled] -"temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 31, column 36]\n n$4=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,0:int,1:int) [line 31, column 36]\n " shape="box"] +"temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 31, column 36]\n n$1=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,0:int,1:int) [line 31, column 36]\n " shape="box"] "temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_3" -> "temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_4" ; -"temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_4" [label="4: Return Stmt \n n$5=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 31, column 36]\n n$6=_fun_temp_object::div(n$5:int) [line 31, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 31, column 45]\n n$2=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 31, column 45]\n " shape="box"] +"temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_4" [label="4: Destruction(temporaries cleanup) \n n$2=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 31, column 36]\n n$3=_fun_temp_object::div(n$2:int) [line 31, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 31, column 45]\n n$5=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 31, column 45]\n " shape="box"] "temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_4" -> "temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_5" ; -"temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_5" [label="5: Return Stmt \n *&return:int=n$6 [line 31, column 25]\n " shape="box"] +"temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_5" [label="5: Return Stmt \n *&return:int=n$3 [line 31, column 25]\n " shape="box"] "temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_5" -> "temp_field_div0#temp_object#15412040659245592666.f5d0fb2d0c8f868e114b6379ad654aef_2" ; @@ -167,15 +167,15 @@ digraph cfg { "temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_2" [label="2: Exit temp_object::temp_field_div1 \n " color=yellow style=filled] -"temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 41, column 36]\n n$4=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,1:int,0:int) [line 41, column 36]\n " shape="box"] +"temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 41, column 36]\n n$1=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,1:int,0:int) [line 41, column 36]\n " shape="box"] "temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_3" -> "temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_4" ; -"temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_4" [label="4: Return Stmt \n n$5=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 41, column 36]\n n$6=_fun_temp_object::div(n$5:int) [line 41, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 41, column 45]\n n$2=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 41, column 45]\n " shape="box"] +"temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_4" [label="4: Destruction(temporaries cleanup) \n n$2=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 41, column 36]\n n$3=_fun_temp_object::div(n$2:int) [line 41, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 41, column 45]\n n$5=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 41, column 45]\n " shape="box"] "temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_4" -> "temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_5" ; -"temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_5" [label="5: Return Stmt \n *&return:int=n$6 [line 41, column 25]\n " shape="box"] +"temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_5" [label="5: Return Stmt \n *&return:int=n$3 [line 41, column 25]\n " shape="box"] "temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_5" -> "temp_field_div1#temp_object#14919979518945721169.463c8bf1b85b2fefc9473e70e135e02d_2" ; @@ -186,15 +186,15 @@ digraph cfg { "temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_2" [label="2: Exit temp_object::temp_method_div0 \n " color=yellow style=filled] -"temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 35, column 33]\n n$4=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,0:int,1:int) [line 35, column 33]\n " shape="box"] +"temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X); [line 35, column 33]\n n$1=_fun_temp_object::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*,0:int,1:int) [line 35, column 33]\n " shape="box"] "temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_3" -> "temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_4" ; -"temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_4" [label="4: Return Stmt \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 35, column 33]\n n$6=_fun_temp_object::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X&) [line 35, column 33]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 35, column 45]\n n$2=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 35, column 45]\n " shape="box"] +"temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_4" [label="4: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 35, column 33]\n n$3=_fun_temp_object::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X&) [line 35, column 33]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X [line 35, column 45]\n n$5=_fun_temp_object::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:temp_object::X*) injected [line 35, column 45]\n " shape="box"] "temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_4" -> "temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_5" ; -"temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_5" [label="5: Return Stmt \n *&return:int=n$6 [line 35, column 26]\n " shape="box"] +"temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_5" [label="5: Return Stmt \n *&return:int=n$3 [line 35, column 26]\n " shape="box"] "temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_5" -> "temp_method_div0#temp_object#17009651611825801298.b27a48cdb872e8bc72f1181813e5d666_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/exceptions/Exceptions.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/exceptions/Exceptions.cpp.dot index 99d5ae8fc..ba1a0095e 100644 --- a/infer/tests/codetoanalyze/cpp/shared/exceptions/Exceptions.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/exceptions/Exceptions.cpp.dot @@ -1,9 +1,9 @@ /* @generated */ digraph cfg { -"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_1" [label="1: Start FN_deref_null_after_catch_bad\nFormals: i:int*\nLocals: 0$?%__sil_tmp__temp_construct_n$6:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const \n " color=yellow style=filled] +"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_1" [label="1: Start FN_deref_null_after_catch_bad\nFormals: i:int*\nLocals: 0$?%__sil_tmp__temp_construct_n$3:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const \n " color=yellow style=filled] - "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_1" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_8" ; + "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_1" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_7" ; "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_2" [label="2: Exit FN_deref_null_after_catch_bad \n " color=yellow style=filled] @@ -15,31 +15,27 @@ digraph cfg { "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_4" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_2" ; -"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_5" [label="5: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const [line 48, column 37]\n n$4=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *) injected virtual [line 48, column 37]\n " shape="box"] +"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const ); [line 48, column 11]\n n$4=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *,\"error\":char const *) [line 48, column 11]\n " shape="box"] - "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_5" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_3" ; - "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_5" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_9" [color="red" ]; -"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const ); [line 48, column 11]\n n$7=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *,\"error\":char const *) [line 48, column 11]\n " shape="box"] + "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_5" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_6" ; +"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_6" [label="6: Destruction(temporaries cleanup) \n n$5=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$3:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const &) [line 48, column 11]\n n$6=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$3:std::runtime_error) [line 48, column 5]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const [line 48, column 37]\n n$8=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *) injected virtual [line 48, column 37]\n " shape="box"] - "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_6" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_7" ; -"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_7" [label="7: ObjCCPPThrow \n n$8=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$6:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const &) [line 48, column 11]\n n$9=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$6:std::runtime_error) [line 48, column 5]\n " shape="box"] + "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_6" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_3" ; + "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_6" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_8" [color="red" ]; +"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_7" [label="7: BinaryOperatorStmt: Assign \n n$9=*&i:int* [line 47, column 6]\n *n$9:int=2 [line 47, column 5]\n " shape="box"] "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_7" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_5" ; -"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_8" [label="8: BinaryOperatorStmt: Assign \n n$10=*&i:int* [line 47, column 6]\n *n$10:int=2 [line 47, column 5]\n " shape="box"] +"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_8" [label="8: BinaryOperatorStmt: Assign \n *&i:int*=null [line 50, column 5]\n " shape="box"] - "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_8" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_6" ; -"FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_9" [label="9: BinaryOperatorStmt: Assign \n *&i:int*=null [line 50, column 5]\n " shape="box"] + "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_8" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_3" ; +"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_1" [label="1: Start FN_deref_null_in_catch_bad\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$1:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const i:int* \n " color=yellow style=filled] - "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_9" -> "FN_deref_null_after_catch_bad#4627123003703707696.43441e3badf1bb571cbe770f9d51a51c_3" ; -"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_1" [label="1: Start FN_deref_null_in_catch_bad\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$4:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const i:int* \n " color=yellow style=filled] - - - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_1" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_9" ; + "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_1" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_8" ; "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_2" [label="2: Exit FN_deref_null_in_catch_bad \n " color=yellow style=filled] @@ -47,35 +43,31 @@ digraph cfg { "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_3" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_2" ; -"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_4" [label="4: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const [line 38, column 37]\n n$2=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *) injected virtual [line 38, column 37]\n " shape="box"] - - - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_4" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_3" ; - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_4" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_7" [color="red" ]; -"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const ); [line 38, column 11]\n n$5=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *,\"error\":char const *) [line 38, column 11]\n " shape="box"] +"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const ); [line 38, column 11]\n n$2=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *,\"error\":char const *) [line 38, column 11]\n " shape="box"] - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_5" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_6" ; -"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_6" [label="6: ObjCCPPThrow \n n$6=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$4:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const &) [line 38, column 11]\n n$7=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$4:std::runtime_error) [line 38, column 5]\n " shape="box"] + "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_4" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_5" ; +"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_5" [label="5: Destruction(temporaries cleanup) \n n$3=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$1:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const &) [line 38, column 11]\n n$4=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$1:std::runtime_error) [line 38, column 5]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const [line 38, column 37]\n n$6=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *) injected virtual [line 38, column 37]\n " shape="box"] - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_6" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_4" ; -"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_7" [label="7: Return Stmt \n n$8=*&i:int* [line 40, column 13]\n n$9=*n$8:int [line 40, column 12]\n " shape="box"] + "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_5" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_3" ; + "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_5" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_6" [color="red" ]; +"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_6" [label="6: Return Stmt \n n$7=*&i:int* [line 40, column 13]\n n$8=*n$7:int [line 40, column 12]\n " shape="box"] - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_7" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_8" ; -"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_8" [label="8: Return Stmt \n *&return:int=n$9 [line 40, column 5]\n " shape="box"] + "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_6" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_7" ; +"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_7" [label="7: Return Stmt \n *&return:int=n$8 [line 40, column 5]\n " shape="box"] - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_8" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_2" ; -"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_9" [label="9: DeclStmt \n VARIABLE_DECLARED(i:int*); [line 36, column 3]\n *&i:int*=null [line 36, column 3]\n " shape="box"] + "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_7" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_2" ; +"FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_8" [label="8: DeclStmt \n VARIABLE_DECLARED(i:int*); [line 36, column 3]\n *&i:int*=null [line 36, column 3]\n " shape="box"] - "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_9" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_5" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_1" [label="1: Start FN_multiple_catches_bad\nFormals: b:_Bool\nLocals: 0$?%__sil_tmp__temp_construct_n$5:std::length_error 0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const 0$?%__sil_tmp__temp_construct_n$13:std::range_error 0$?%__sil_tmpSIL_materialize_temp__n$9:std::range_error const j:int* i:int* \n " color=yellow style=filled] + "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_8" -> "FN_deref_null_in_catch_bad#9297890526029657977.c83eec7c9ab8ce2e38ddbc08f8c3dfeb_4" ; +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_1" [label="1: Start FN_multiple_catches_bad\nFormals: b:_Bool\nLocals: 0$?%__sil_tmp__temp_construct_n$2:std::length_error 0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const 0$?%__sil_tmp__temp_construct_n$9:std::range_error 0$?%__sil_tmpSIL_materialize_temp__n$8:std::range_error const j:int* i:int* \n " color=yellow style=filled] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_1" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_18" ; + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_1" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_16" ; "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_2" [label="2: Exit FN_multiple_catches_bad \n " color=yellow style=filled] @@ -87,84 +79,72 @@ digraph cfg { "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_4" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_3" ; - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_4" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_15" [color="red" ]; "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_4" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_13" [color="red" ]; + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_4" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_11" [color="red" ]; "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_5" [label="5: Prune (true branch, if) \n n$0=*&b:_Bool [line 59, column 9]\n PRUNE(n$0, true); [line 59, column 9]\n " shape="invhouse"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_5" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_8" ; + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_5" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_7" ; "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_6" [label="6: Prune (false branch, if) \n n$0=*&b:_Bool [line 59, column 9]\n PRUNE(!n$0, false); [line 59, column 9]\n " shape="invhouse"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_6" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_11" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_7" [label="7: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const [line 60, column 38]\n n$3=_fun_std::length_error::~length_error(&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const *) injected virtual [line 60, column 38]\n " shape="box"] + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_6" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_9" ; +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const ); [line 60, column 13]\n n$3=_fun_std::length_error::length_error(&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const *,\"error\":char const *) [line 60, column 13]\n " shape="box"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_7" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_4" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_8" [label="8: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const ); [line 60, column 13]\n n$6=_fun_std::length_error::length_error(&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const *,\"error\":char const *) [line 60, column 13]\n " shape="box"] + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_7" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_8" ; +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_8" [label="8: Destruction(temporaries cleanup) \n n$4=_fun_std::length_error::length_error(&0$?%__sil_tmp__temp_construct_n$2:std::length_error*,&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const &) [line 60, column 13]\n n$5=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$2:std::length_error) [line 60, column 7]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const [line 60, column 38]\n n$7=_fun_std::length_error::~length_error(&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const *) injected virtual [line 60, column 38]\n " shape="box"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_8" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_9" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_9" [label="9: ObjCCPPThrow \n n$7=_fun_std::length_error::length_error(&0$?%__sil_tmp__temp_construct_n$5:std::length_error*,&0$?%__sil_tmpSIL_materialize_temp__n$1:std::length_error const &) [line 60, column 13]\n n$8=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$5:std::length_error) [line 60, column 7]\n " shape="box"] + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_8" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_4" ; +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$8:std::range_error const ); [line 62, column 13]\n n$10=_fun_std::range_error::range_error(&0$?%__sil_tmpSIL_materialize_temp__n$8:std::range_error const *,\"error\":char const *) [line 62, column 13]\n " shape="box"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_9" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_7" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_10" [label="10: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:std::range_error const [line 62, column 37]\n n$11=_fun_std::range_error::~range_error(&0$?%__sil_tmpSIL_materialize_temp__n$9:std::range_error const *) injected virtual [line 62, column 37]\n " shape="box"] + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_9" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_10" ; +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_10" [label="10: Destruction(temporaries cleanup) \n n$11=_fun_std::range_error::range_error(&0$?%__sil_tmp__temp_construct_n$9:std::range_error*,&0$?%__sil_tmpSIL_materialize_temp__n$8:std::range_error const &) [line 62, column 13]\n n$12=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$9:std::range_error) [line 62, column 7]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$8:std::range_error const [line 62, column 37]\n n$14=_fun_std::range_error::~range_error(&0$?%__sil_tmpSIL_materialize_temp__n$8:std::range_error const *) injected virtual [line 62, column 37]\n " shape="box"] "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_10" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_4" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_11" [label="11: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:std::range_error const ); [line 62, column 13]\n n$14=_fun_std::range_error::range_error(&0$?%__sil_tmpSIL_materialize_temp__n$9:std::range_error const *,\"error\":char const *) [line 62, column 13]\n " shape="box"] +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_11" [label="11: Return Stmt \n n$16=*&i:int* [line 65, column 13]\n n$17=*n$16:int [line 65, column 12]\n " shape="box"] "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_11" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_12" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_12" [label="12: ObjCCPPThrow \n n$15=_fun_std::range_error::range_error(&0$?%__sil_tmp__temp_construct_n$13:std::range_error*,&0$?%__sil_tmpSIL_materialize_temp__n$9:std::range_error const &) [line 62, column 13]\n n$16=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$13:std::range_error) [line 62, column 7]\n " shape="box"] +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_12" [label="12: Return Stmt \n *&return:int=n$17 [line 65, column 5]\n " shape="box"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_12" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_10" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_13" [label="13: Return Stmt \n n$18=*&i:int* [line 65, column 13]\n n$19=*n$18:int [line 65, column 12]\n " shape="box"] + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_12" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_2" ; +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_13" [label="13: Return Stmt \n n$18=*&j:int* [line 67, column 13]\n n$19=*n$18:int [line 67, column 12]\n " shape="box"] "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_13" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_14" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_14" [label="14: Return Stmt \n *&return:int=n$19 [line 65, column 5]\n " shape="box"] +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_14" [label="14: Return Stmt \n *&return:int=n$19 [line 67, column 5]\n " shape="box"] "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_14" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_2" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_15" [label="15: Return Stmt \n n$20=*&j:int* [line 67, column 13]\n n$21=*n$20:int [line 67, column 12]\n " shape="box"] - - - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_15" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_16" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_16" [label="16: Return Stmt \n *&return:int=n$21 [line 67, column 5]\n " shape="box"] +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_15" [label="15: DeclStmt \n VARIABLE_DECLARED(j:int*); [line 57, column 3]\n *&j:int*=null [line 57, column 3]\n " shape="box"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_16" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_2" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_17" [label="17: DeclStmt \n VARIABLE_DECLARED(j:int*); [line 57, column 3]\n *&j:int*=null [line 57, column 3]\n " shape="box"] + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_15" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_5" ; + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_15" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_6" ; +"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_16" [label="16: DeclStmt \n VARIABLE_DECLARED(i:int*); [line 56, column 3]\n *&i:int*=null [line 56, column 3]\n " shape="box"] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_17" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_5" ; - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_17" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_6" ; -"FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_18" [label="18: DeclStmt \n VARIABLE_DECLARED(i:int*); [line 56, column 3]\n *&i:int*=null [line 56, column 3]\n " shape="box"] + "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_16" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_15" ; +"basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_1" [label="1: Start basic_throw_ok\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$1:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const \n " color=yellow style=filled] - "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_18" -> "FN_multiple_catches_bad#4595182522053295670.680a793e449c2d7439ff6441ca69fa98_17" ; -"basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_1" [label="1: Start basic_throw_ok\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$4:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const \n " color=yellow style=filled] - - - "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_1" -> "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_4" ; + "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_1" -> "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_3" ; "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_2" [label="2: Exit basic_throw_ok \n " color=yellow style=filled] -"basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_3" [label="3: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const [line 27, column 61]\n n$2=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *) injected virtual [line 27, column 61]\n " shape="box"] - - - "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_3" -> "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_2" ; -"basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const ); [line 27, column 31]\n n$5=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *,\"throwing!\":char const *) [line 27, column 31]\n " shape="box"] +"basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const ); [line 27, column 31]\n n$2=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *,\"throwing!\":char const *) [line 27, column 31]\n " shape="box"] - "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_4" -> "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_5" ; -"basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_5" [label="5: ObjCCPPThrow \n n$6=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$4:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const &) [line 27, column 31]\n n$7=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$4:std::runtime_error) [line 27, column 25]\n " shape="box"] + "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_3" -> "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_4" ; +"basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_4" [label="4: Destruction(temporaries cleanup) \n n$3=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$1:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const &) [line 27, column 31]\n n$4=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$1:std::runtime_error) [line 27, column 25]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const [line 27, column 61]\n n$6=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::runtime_error const *) injected virtual [line 27, column 61]\n " shape="box"] - "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_5" -> "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_3" ; + "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_4" -> "basic_throw_ok#10529188890980782893.c9e1b8dd080b2621cfca65612331859d_2" ; "call_deref_with_null#4611966425999531792.6346543307e9a799421a89e451b917c2_1" [label="1: Start call_deref_with_null\nFormals: \nLocals: \n " color=yellow style=filled] @@ -176,10 +156,10 @@ digraph cfg { "call_deref_with_null#4611966425999531792.6346543307e9a799421a89e451b917c2_3" -> "call_deref_with_null#4611966425999531792.6346543307e9a799421a89e451b917c2_2" ; -"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_1" [label="1: Start dead_deref_null_after_throw_ok\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$6:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const i:int* \n " color=yellow style=filled] +"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_1" [label="1: Start dead_deref_null_after_throw_ok\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$3:std::runtime_error 0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const i:int* \n " color=yellow style=filled] - "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_1" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_8" ; + "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_1" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_7" ; "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_2" [label="2: Exit dead_deref_null_after_throw_ok \n " color=yellow style=filled] @@ -191,22 +171,18 @@ digraph cfg { "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_4" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_2" ; -"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_5" [label="5: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const [line 31, column 39]\n n$4=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *) injected virtual [line 31, column 39]\n " shape="box"] +"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const ); [line 31, column 9]\n n$4=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *,\"throwing!\":char const *) [line 31, column 9]\n " shape="box"] - "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_5" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_3" ; -"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const ); [line 31, column 9]\n n$7=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *,\"throwing!\":char const *) [line 31, column 9]\n " shape="box"] + "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_5" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_6" ; +"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_6" [label="6: Destruction(temporaries cleanup) \n n$5=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$3:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const &) [line 31, column 9]\n n$6=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$3:std::runtime_error) [line 31, column 3]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const [line 31, column 39]\n n$8=_fun_std::runtime_error::~runtime_error(&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const *) injected virtual [line 31, column 39]\n " shape="box"] - "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_6" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_7" ; -"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_7" [label="7: ObjCCPPThrow \n n$8=_fun_std::runtime_error::runtime_error(&0$?%__sil_tmp__temp_construct_n$6:std::runtime_error*,&0$?%__sil_tmpSIL_materialize_temp__n$2:std::runtime_error const &) [line 31, column 9]\n n$9=_fun___infer_objc_cpp_throw(&0$?%__sil_tmp__temp_construct_n$6:std::runtime_error) [line 31, column 3]\n " shape="box"] + "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_6" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_3" ; +"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_7" [label="7: DeclStmt \n VARIABLE_DECLARED(i:int*); [line 30, column 3]\n *&i:int*=null [line 30, column 3]\n " shape="box"] "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_7" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_5" ; -"dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_8" [label="8: DeclStmt \n VARIABLE_DECLARED(i:int*); [line 30, column 3]\n *&i:int*=null [line 30, column 3]\n " shape="box"] - - - "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_8" -> "dead_deref_null_after_throw_ok#12025371096822526715.42d41c040f3a321bb94f60bf7b55d001_6" ; "deref#13506892413034678690.824465c4193ad2288eb512b1083edab3_1" [label="1: Start deref\nFormals: p:int*\nLocals: \n " color=yellow style=filled] diff --git a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot index ef635ca8a..0abef6f6d 100644 --- a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot @@ -3,7 +3,7 @@ digraph cfg { "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_1" [label="1: Start bar\nFormals: \nLocals: func:bar::lambda_shared_lambda_lambda1.cpp:9:15 0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15 \n " color=yellow style=filled] - "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_1" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_6" ; + "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_1" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_7" ; "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_2" [label="2: Exit bar \n " color=yellow style=filled] @@ -18,19 +18,19 @@ digraph cfg { "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15); [line 9, column 15]\n *&0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15=(_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15::operator()) [line 9, column 15]\n " shape="box"] - "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_5" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_7" ; -"bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_6" [label="6: DeclStmt \n VARIABLE_DECLARED(func:bar::lambda_shared_lambda_lambda1.cpp:9:15); [line 9, column 3]\n " shape="box"] + "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_5" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_6" ; +"bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_6" [label="6: Destruction(temporaries cleanup) \n n$6=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15::(&func:bar::lambda_shared_lambda_lambda1.cpp:9:15*,&0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15&) [line 9, column 15]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15 [line 12, column 3]\n n$8=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15::~(&0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15*) injected [line 12, column 3]\n " shape="box"] - "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_6" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_5" ; -"bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_7" [label="7: DeclStmt \n n$9=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15::(&func:bar::lambda_shared_lambda_lambda1.cpp:9:15*,&0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15&) [line 9, column 15]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15 [line 12, column 3]\n n$7=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15::~(&0$?%__sil_tmpSIL_materialize_temp__n$5:bar::lambda_shared_lambda_lambda1.cpp:9:15*) injected [line 12, column 3]\n " shape="box"] + "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_6" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_3" ; +"bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_7" [label="7: DeclStmt \n VARIABLE_DECLARED(func:bar::lambda_shared_lambda_lambda1.cpp:9:15); [line 9, column 3]\n " shape="box"] - "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_7" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_3" ; + "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_7" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_5" ; "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_1" [label="1: Start capture_by_ref\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3 x:int \n " color=yellow style=filled] - "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_1" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_8" ; + "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_1" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_7" ; "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_2" [label="2: Exit capture_by_ref \n " color=yellow style=filled] @@ -42,26 +42,22 @@ digraph cfg { "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_4" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_2" ; -"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_5" [label="5: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3 [line 36, column 19]\n n$3=_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3::~(&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3*) injected [line 36, column 19]\n " shape="box"] +"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3); [line 36, column 3]\n *&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3=(_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3::operator(),&x) [line 36, column 3]\n " shape="box"] - "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_5" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_3" ; -"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3); [line 36, column 3]\n *&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3=(_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3::operator(),&x) [line 36, column 3]\n " shape="box"] + "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_5" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_6" ; +"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_6" [label="6: Destruction(temporaries cleanup) \n n$3=_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3&) [line 36, column 3]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3 [line 36, column 19]\n n$5=_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3::~(&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3*) injected [line 36, column 19]\n " shape="box"] - "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_6" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_7" ; -"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_7" [label="7: Call _fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3::operator() \n n$6=_fun_capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$1:capture_by_ref::lambda_shared_lambda_lambda1.cpp:36:3&) [line 36, column 3]\n " shape="box"] + "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_6" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_3" ; +"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_7" [label="7: DeclStmt \n VARIABLE_DECLARED(x:int); [line 35, column 3]\n *&x:int=0 [line 35, column 3]\n " shape="box"] "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_7" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_5" ; -"capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_8" [label="8: DeclStmt \n VARIABLE_DECLARED(x:int); [line 35, column 3]\n *&x:int=0 [line 35, column 3]\n " shape="box"] +"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_1" [label="1: Start foo\nFormals: \nLocals: y:foo::lambda_shared_lambda_lambda1.cpp:18:12 0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12 unused:foo::lambda_shared_lambda_lambda1.cpp:17:17 0$?%__sil_tmpSIL_materialize_temp__n$11:foo::lambda_shared_lambda_lambda1.cpp:17:17 \n " color=yellow style=filled] - "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_8" -> "capture_by_ref#4375601249296069049.1d794578c048d96b25fb1e90dbaa8225_6" ; -"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_1" [label="1: Start foo\nFormals: \nLocals: y:foo::lambda_shared_lambda_lambda1.cpp:18:12 0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12 unused:foo::lambda_shared_lambda_lambda1.cpp:17:17 0$?%__sil_tmpSIL_materialize_temp__n$12:foo::lambda_shared_lambda_lambda1.cpp:17:17 \n " color=yellow style=filled] - - - "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_1" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_9" ; + "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_1" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_10" ; "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_2" [label="2: Exit foo \n " color=yellow style=filled] @@ -76,31 +72,31 @@ digraph cfg { "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12); [line 18, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12=(_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12::operator()) [line 18, column 12]\n " shape="box"] - "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_5" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_7" ; -"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_6" [label="6: DeclStmt \n VARIABLE_DECLARED(y:foo::lambda_shared_lambda_lambda1.cpp:18:12); [line 18, column 3]\n " shape="box"] + "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_5" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_6" ; +"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_6" [label="6: Destruction(temporaries cleanup) \n n$8=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12::(&y:foo::lambda_shared_lambda_lambda1.cpp:18:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12&) [line 18, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12 [line 18, column 36]\n n$10=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12*) injected [line 18, column 36]\n " shape="box"] - "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_6" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_5" ; -"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_7" [label="7: DeclStmt \n n$11=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12::(&y:foo::lambda_shared_lambda_lambda1.cpp:18:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12&) [line 18, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12 [line 18, column 36]\n n$9=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:foo::lambda_shared_lambda_lambda1.cpp:18:12*) injected [line 18, column 36]\n " shape="box"] + "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_6" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_3" ; +"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_7" [label="7: DeclStmt \n VARIABLE_DECLARED(y:foo::lambda_shared_lambda_lambda1.cpp:18:12); [line 18, column 3]\n " shape="box"] - "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_7" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_3" ; -"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_8" [label="8: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$12:foo::lambda_shared_lambda_lambda1.cpp:17:17); [line 17, column 17]\n *&0$?%__sil_tmpSIL_materialize_temp__n$12:foo::lambda_shared_lambda_lambda1.cpp:17:17=(_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17::operator()) [line 17, column 17]\n " shape="box"] + "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_7" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_5" ; +"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_8" [label="8: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$11:foo::lambda_shared_lambda_lambda1.cpp:17:17); [line 17, column 17]\n *&0$?%__sil_tmpSIL_materialize_temp__n$11:foo::lambda_shared_lambda_lambda1.cpp:17:17=(_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17::operator()) [line 17, column 17]\n " shape="box"] - "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_8" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_10" ; -"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_9" [label="9: DeclStmt \n VARIABLE_DECLARED(unused:foo::lambda_shared_lambda_lambda1.cpp:17:17); [line 17, column 3]\n " shape="box"] + "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_8" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_9" ; +"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_9" [label="9: Destruction(temporaries cleanup) \n n$12=_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17::(&unused:foo::lambda_shared_lambda_lambda1.cpp:17:17*,&0$?%__sil_tmpSIL_materialize_temp__n$11:foo::lambda_shared_lambda_lambda1.cpp:17:17&) [line 17, column 17]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$11:foo::lambda_shared_lambda_lambda1.cpp:17:17 [line 17, column 38]\n n$14=_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17::~(&0$?%__sil_tmpSIL_materialize_temp__n$11:foo::lambda_shared_lambda_lambda1.cpp:17:17*) injected [line 17, column 38]\n " shape="box"] - "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_9" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_8" ; -"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_10" [label="10: DeclStmt \n n$16=_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17::(&unused:foo::lambda_shared_lambda_lambda1.cpp:17:17*,&0$?%__sil_tmpSIL_materialize_temp__n$12:foo::lambda_shared_lambda_lambda1.cpp:17:17&) [line 17, column 17]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$12:foo::lambda_shared_lambda_lambda1.cpp:17:17 [line 17, column 38]\n n$14=_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17::~(&0$?%__sil_tmpSIL_materialize_temp__n$12:foo::lambda_shared_lambda_lambda1.cpp:17:17*) injected [line 17, column 38]\n " shape="box"] + "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_9" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_7" ; +"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_10" [label="10: DeclStmt \n VARIABLE_DECLARED(unused:foo::lambda_shared_lambda_lambda1.cpp:17:17); [line 17, column 3]\n " shape="box"] - "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_10" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_6" ; + "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_10" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_8" ; "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_1" [label="1: Start fooOK\nFormals: \nLocals: y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12 0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12 \n " color=yellow style=filled] - "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_1" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_6" ; + "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_1" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_7" ; "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_2" [label="2: Exit fooOK \n " color=yellow style=filled] @@ -115,15 +111,15 @@ digraph cfg { "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12); [line 24, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12=(_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12::operator()) [line 24, column 12]\n " shape="box"] - "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_5" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_7" ; -"fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_6" [label="6: DeclStmt \n VARIABLE_DECLARED(y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12); [line 24, column 3]\n " shape="box"] + "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_5" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_6" ; +"fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_6" [label="6: Destruction(temporaries cleanup) \n n$6=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12::(&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12*,&0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12&) [line 24, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12 [line 24, column 36]\n n$8=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12*) injected [line 24, column 36]\n " shape="box"] - "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_6" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_5" ; -"fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_7" [label="7: DeclStmt \n n$9=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12::(&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12*,&0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12&) [line 24, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12 [line 24, column 36]\n n$7=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$5:fooOK::lambda_shared_lambda_lambda1.cpp:24:12*) injected [line 24, column 36]\n " shape="box"] + "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_6" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_3" ; +"fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_7" [label="7: DeclStmt \n VARIABLE_DECLARED(y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12); [line 24, column 3]\n " shape="box"] - "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_7" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_3" ; + "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_7" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_5" ; "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_1" [label="1: Start init_capture1\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10 \n " color=yellow style=filled] @@ -139,15 +135,15 @@ digraph cfg { "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_4" -> "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_3" ; -"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_5" [label="5: DeclStmt \n n$5=*&i:int [line 41, column 10]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10=(_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10::operator(),([by value]n$5 &i:int)) [line 41, column 10]\n " shape="box"] +"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_5" [label="5: DeclStmt \n n$2=*&i:int [line 41, column 10]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10=(_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10::operator(),([by value]n$2 &i:int)) [line 41, column 10]\n " shape="box"] "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_5" -> "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_6" ; -"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_6" [label="6: Return Stmt \n n$6=_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10&) [line 41, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10 [line 41, column 34]\n n$2=_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10::~(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10*) injected [line 41, column 34]\n " shape="box"] +"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_6" [label="6: Destruction(temporaries cleanup) \n n$3=_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10&) [line 41, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10 [line 41, column 34]\n n$5=_fun_init_capture1::lambda_shared_lambda_lambda1.cpp:41:10::~(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture1::lambda_shared_lambda_lambda1.cpp:41:10*) injected [line 41, column 34]\n " shape="box"] "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_6" -> "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_7" ; -"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_7" [label="7: Return Stmt \n *&return:int=n$6 [line 41, column 3]\n " shape="box"] +"init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_7" [label="7: Return Stmt \n *&return:int=n$3 [line 41, column 3]\n " shape="box"] "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_7" -> "init_capture1#11582985675627962568.58b9ce334267f411dc5e1c70bd53eb81_2" ; @@ -166,7 +162,7 @@ digraph cfg { "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_4" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_3" ; -"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" [label="5: DeclStmt \n VARIABLE_DECLARED(a:int); [line 46, column 10]\n n$7=*&i:int [line 46, column 15]\n *&a:int=n$7 [line 46, column 10]\n " shape="box"] +"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" [label="5: DeclStmt \n VARIABLE_DECLARED(a:int); [line 46, column 10]\n n$4=*&i:int [line 46, column 15]\n *&a:int=n$4 [line 46, column 10]\n " shape="box"] "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_4" ; @@ -174,15 +170,15 @@ digraph cfg { "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_6" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_5" ; -"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_7" [label="7: DeclStmt \n n$8=*&a:int [line 46, column 10]\n n$6=*&b:int [line 46, column 10]\n n$5=*&c:int [line 46, column 10]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10=(_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10::operator(),([by value]n$8 &a:int),([by value]n$6 &b:int),([by value]n$5 &c:int)) [line 46, column 10]\n " shape="box"] +"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_7" [label="7: DeclStmt \n n$5=*&a:int [line 46, column 10]\n n$3=*&b:int [line 46, column 10]\n n$2=*&c:int [line 46, column 10]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10=(_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10::operator(),([by value]n$5 &a:int),([by value]n$3 &b:int),([by value]n$2 &c:int)) [line 46, column 10]\n " shape="box"] "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_7" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_8" ; -"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_8" [label="8: Return Stmt \n n$9=_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10&) [line 46, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10 [line 46, column 56]\n n$2=_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10::~(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10*) injected [line 46, column 56]\n " shape="box"] +"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_8" [label="8: Destruction(temporaries cleanup) \n n$6=_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10&) [line 46, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10 [line 46, column 56]\n n$8=_fun_init_capture2::lambda_shared_lambda_lambda1.cpp:46:10::~(&0$?%__sil_tmpSIL_materialize_temp__n$0:init_capture2::lambda_shared_lambda_lambda1.cpp:46:10*) injected [line 46, column 56]\n " shape="box"] "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_8" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_9" ; -"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_9" [label="9: Return Stmt \n *&return:int=n$9 [line 46, column 3]\n " shape="box"] +"init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_9" [label="9: Return Stmt \n *&return:int=n$6 [line 46, column 3]\n " shape="box"] "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_9" -> "init_capture2#11582143449720942167.039b5039af3b7807e4b00950523a9f3a_2" ; @@ -197,15 +193,15 @@ digraph cfg { "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_2" [label="2: Exit normal_capture \n " color=yellow style=filled] -"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10); [line 31, column 10]\n n$6=*&x:int [line 31, column 10]\n n$5=*&y:int [line 31, column 10]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10=(_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10::operator(),([by value]n$6 &x:int),([by value]n$5 &y:int)) [line 31, column 10]\n " shape="box"] +"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10); [line 31, column 10]\n n$3=*&x:int [line 31, column 10]\n n$2=*&y:int [line 31, column 10]\n *&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10=(_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10::operator(),([by value]n$3 &x:int),([by value]n$2 &y:int)) [line 31, column 10]\n " shape="box"] "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_3" -> "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_4" ; -"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_4" [label="4: Return Stmt \n n$7=_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10&) [line 31, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10 [line 31, column 37]\n n$2=_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10::~(&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10*) injected [line 31, column 37]\n " shape="box"] +"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_4" [label="4: Destruction(temporaries cleanup) \n n$4=_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10&) [line 31, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10 [line 31, column 37]\n n$6=_fun_normal_capture::lambda_shared_lambda_lambda1.cpp:31:10::~(&0$?%__sil_tmpSIL_materialize_temp__n$0:normal_capture::lambda_shared_lambda_lambda1.cpp:31:10*) injected [line 31, column 37]\n " shape="box"] "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_4" -> "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_5" ; -"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_5" [label="5: Return Stmt \n *&return:int=n$7 [line 31, column 3]\n " shape="box"] +"normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_5" [label="5: Return Stmt \n *&return:int=n$4 [line 31, column 3]\n " shape="box"] "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_5" -> "normal_capture#5533029764254319855.11493b249dddd657790695e287170b84_2" ; @@ -220,7 +216,7 @@ digraph cfg { "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_1" [label="1: Start ref_capture_by_ref\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3 xref:int& x:int \n " color=yellow style=filled] - "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_1" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_9" ; + "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_1" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_8" ; "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_2" [label="2: Exit ref_capture_by_ref \n " color=yellow style=filled] @@ -232,26 +228,22 @@ digraph cfg { "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_4" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_2" ; -"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_5" [label="5: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3 [line 100, column 25]\n n$4=_fun_ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3::~(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3*) injected [line 100, column 25]\n " shape="box"] +"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3); [line 100, column 3]\n n$4=*&xref:int& [line 100, column 3]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3=(_fun_ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3::operator(),([by ref]n$4 &xref:int&)) [line 100, column 3]\n " shape="box"] - "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_5" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_3" ; -"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3); [line 100, column 3]\n n$7=*&xref:int& [line 100, column 3]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3=(_fun_ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3::operator(),([by ref]n$7 &xref:int&)) [line 100, column 3]\n " shape="box"] + "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_5" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_6" ; +"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_6" [label="6: Destruction(temporaries cleanup) \n n$5=_fun_ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3&) [line 100, column 3]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3 [line 100, column 25]\n n$7=_fun_ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3::~(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3*) injected [line 100, column 25]\n " shape="box"] - "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_6" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_7" ; -"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_7" [label="7: Call _fun_ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3::operator() \n n$8=_fun_ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_capture_by_ref::lambda_shared_lambda_lambda1.cpp:100:3&) [line 100, column 3]\n " shape="box"] + "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_6" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_3" ; +"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_7" [label="7: DeclStmt \n VARIABLE_DECLARED(xref:int&); [line 99, column 3]\n *&xref:int&=&x [line 99, column 3]\n " shape="box"] "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_7" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_5" ; -"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_8" [label="8: DeclStmt \n VARIABLE_DECLARED(xref:int&); [line 99, column 3]\n *&xref:int&=&x [line 99, column 3]\n " shape="box"] - - - "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_8" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_6" ; -"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:int); [line 98, column 3]\n *&x:int=0 [line 98, column 3]\n " shape="box"] +"ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_8" [label="8: DeclStmt \n VARIABLE_DECLARED(x:int); [line 98, column 3]\n *&x:int=0 [line 98, column 3]\n " shape="box"] - "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_9" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_8" ; + "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_8" -> "ref_capture_by_ref#14681721236694523499.e4fbc78377bc879fc79633acdbd6829c_7" ; "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_1" [label="1: Start ref_capture_by_value\nFormals: \nLocals: ret:int f:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12 0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12 xref:int& x:int \n " color=yellow style=filled] @@ -271,22 +263,22 @@ digraph cfg { "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_5" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_3" ; -"ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12); [line 84, column 12]\n n$10=*&xref:int& [line 84, column 12]\n n$11=*n$10:int [line 84, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12=(_fun_ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12::operator(),([by value]n$11 &xref:int)) [line 84, column 12]\n " shape="box"] +"ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12); [line 84, column 12]\n n$7=*&xref:int& [line 84, column 12]\n n$8=*n$7:int [line 84, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12=(_fun_ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12::operator(),([by value]n$8 &xref:int)) [line 84, column 12]\n " shape="box"] - "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_6" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_8" ; -"ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_7" [label="7: DeclStmt \n VARIABLE_DECLARED(f:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12); [line 84, column 3]\n " shape="box"] + "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_6" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_7" ; +"ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_7" [label="7: Destruction(temporaries cleanup) \n n$9=_fun_ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12::(&f:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12*,&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12&) [line 84, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12 [line 84, column 40]\n n$11=_fun_ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12*) injected [line 84, column 40]\n " shape="box"] - "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_7" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_6" ; -"ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_8" [label="8: DeclStmt \n n$12=_fun_ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12::(&f:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12*,&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12&) [line 84, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12 [line 84, column 40]\n n$8=_fun_ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12*) injected [line 84, column 40]\n " shape="box"] + "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_7" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_5" ; +"ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_8" [label="8: DeclStmt \n VARIABLE_DECLARED(f:ref_capture_by_value::lambda_shared_lambda_lambda1.cpp:84:12); [line 84, column 3]\n " shape="box"] - "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_8" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_5" ; + "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_8" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_6" ; "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_9" [label="9: DeclStmt \n VARIABLE_DECLARED(xref:int&); [line 83, column 3]\n *&xref:int&=&x [line 83, column 3]\n " shape="box"] - "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_9" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_7" ; + "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_9" -> "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_8" ; "ref_capture_by_value#4806574088982549998.61621d058ca5955e04dd4735d42f6588_10" [label="10: DeclStmt \n VARIABLE_DECLARED(x:int); [line 82, column 3]\n *&x:int=0 [line 82, column 3]\n " shape="box"] @@ -294,7 +286,7 @@ digraph cfg { "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_1" [label="1: Start ref_init_capture_by_ref\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3 xref:int& x:int \n " color=yellow style=filled] - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_1" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_11" ; + "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_1" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_10" ; "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_2" [label="2: Exit ref_init_capture_by_ref \n " color=yellow style=filled] @@ -306,34 +298,30 @@ digraph cfg { "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_4" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_2" ; -"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_5" [label="5: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3 [line 107, column 39]\n n$4=_fun_ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3::~(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3*) injected [line 107, column 39]\n " shape="box"] - - - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_5" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_3" ; -"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_6" [label="6: DeclStmt \n VARIABLE_DECLARED(xlambda:int&); [line 107, column 3]\n n$7=*&xref:int& [line 107, column 16]\n *&xlambda:int&=n$7 [line 107, column 3]\n " shape="box"] +"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_5" [label="5: DeclStmt \n VARIABLE_DECLARED(xlambda:int&); [line 107, column 3]\n n$4=*&xref:int& [line 107, column 16]\n *&xlambda:int&=n$4 [line 107, column 3]\n " shape="box"] - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_6" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_8" ; -"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3); [line 107, column 3]\n " shape="box"] + "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_5" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_7" ; +"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3); [line 107, column 3]\n " shape="box"] - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_7" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_6" ; -"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_8" [label="8: DeclStmt \n n$8=*&xlambda:int& [line 107, column 3]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3=(_fun_ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3::operator(),([by ref]n$8 &xlambda:int&)) [line 107, column 3]\n " shape="box"] + "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_6" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_5" ; +"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_7" [label="7: DeclStmt \n n$5=*&xlambda:int& [line 107, column 3]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3=(_fun_ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3::operator(),([by ref]n$5 &xlambda:int&)) [line 107, column 3]\n " shape="box"] - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_8" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_9" ; -"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_9" [label="9: Call _fun_ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3::operator() \n n$9=_fun_ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3&) [line 107, column 3]\n " shape="box"] + "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_7" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_8" ; +"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_8" [label="8: Destruction(temporaries cleanup) \n n$6=_fun_ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3::operator()(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3&) [line 107, column 3]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3 [line 107, column 39]\n n$8=_fun_ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3::~(&0$?%__sil_tmpSIL_materialize_temp__n$2:ref_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:107:3*) injected [line 107, column 39]\n " shape="box"] - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_9" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_5" ; -"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_10" [label="10: DeclStmt \n VARIABLE_DECLARED(xref:int&); [line 106, column 3]\n *&xref:int&=&x [line 106, column 3]\n " shape="box"] + "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_8" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_3" ; +"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_9" [label="9: DeclStmt \n VARIABLE_DECLARED(xref:int&); [line 106, column 3]\n *&xref:int&=&x [line 106, column 3]\n " shape="box"] - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_10" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_7" ; -"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_11" [label="11: DeclStmt \n VARIABLE_DECLARED(x:int); [line 105, column 3]\n *&x:int=0 [line 105, column 3]\n " shape="box"] + "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_9" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_6" ; +"ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_10" [label="10: DeclStmt \n VARIABLE_DECLARED(x:int); [line 105, column 3]\n *&x:int=0 [line 105, column 3]\n " shape="box"] - "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_11" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_10" ; + "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_10" -> "ref_init_capture_by_ref#8408411231784662282.399b89cb2bc432190cf902f8189b053c_9" ; "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_1" [label="1: Start ref_init_capture_by_value\nFormals: \nLocals: ret:int f:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12 0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12 xref:int& x:int \n " color=yellow style=filled] @@ -353,7 +341,7 @@ digraph cfg { "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_5" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_3" ; -"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_6" [label="6: DeclStmt \n VARIABLE_DECLARED(xlambda:int); [line 92, column 12]\n n$10=*&xref:int& [line 92, column 23]\n n$11=*n$10:int [line 92, column 23]\n *&xlambda:int=n$11 [line 92, column 12]\n " shape="box"] +"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_6" [label="6: DeclStmt \n VARIABLE_DECLARED(xlambda:int); [line 92, column 12]\n n$7=*&xref:int& [line 92, column 23]\n n$8=*n$7:int [line 92, column 23]\n *&xlambda:int=n$8 [line 92, column 12]\n " shape="box"] "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_6" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_8" ; @@ -361,22 +349,22 @@ digraph cfg { "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_7" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_6" ; -"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_8" [label="8: DeclStmt \n n$12=*&xlambda:int [line 92, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12=(_fun_ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12::operator(),([by value]n$12 &xlambda:int)) [line 92, column 12]\n " shape="box"] +"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_8" [label="8: DeclStmt \n n$9=*&xlambda:int [line 92, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12=(_fun_ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12::operator(),([by value]n$9 &xlambda:int)) [line 92, column 12]\n " shape="box"] - "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_8" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_10" ; -"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_9" [label="9: DeclStmt \n VARIABLE_DECLARED(f:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12); [line 92, column 3]\n " shape="box"] + "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_8" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_9" ; +"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_9" [label="9: Destruction(temporaries cleanup) \n n$10=_fun_ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12::(&f:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12*,&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12&) [line 92, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12 [line 92, column 53]\n n$12=_fun_ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12*) injected [line 92, column 53]\n " shape="box"] - "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_9" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_7" ; -"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_10" [label="10: DeclStmt \n n$13=_fun_ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12::(&f:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12*,&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12&) [line 92, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12 [line 92, column 53]\n n$8=_fun_ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$6:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12*) injected [line 92, column 53]\n " shape="box"] + "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_9" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_5" ; +"ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_10" [label="10: DeclStmt \n VARIABLE_DECLARED(f:ref_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:92:12); [line 92, column 3]\n " shape="box"] - "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_10" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_5" ; + "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_10" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_7" ; "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_11" [label="11: DeclStmt \n VARIABLE_DECLARED(xref:int&); [line 91, column 3]\n *&xref:int&=&x [line 91, column 3]\n " shape="box"] - "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_11" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_9" ; + "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_11" -> "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_10" ; "ref_init_capture_by_value#2039100596272541472.6db03403e4946224500aec3971ad9092_12" [label="12: DeclStmt \n VARIABLE_DECLARED(x:int); [line 90, column 3]\n *&x:int=0 [line 90, column 3]\n " shape="box"] @@ -396,23 +384,23 @@ digraph cfg { "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_4" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_2" ; -"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12); [line 77, column 12]\n n$14=*&x:SomeStruct& [line 77, column 12]\n n$13=*&y:SomeStruct& [line 77, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12=(_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12::operator(),([by value]n$14 &x:SomeStruct&),([by value]n$13 &y:SomeStruct&)) [line 77, column 12]\n " shape="box"] +"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12); [line 77, column 12]\n n$11=*&x:SomeStruct& [line 77, column 12]\n n$10=*&y:SomeStruct& [line 77, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12=(_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12::operator(),([by value]n$11 &x:SomeStruct&),([by value]n$10 &y:SomeStruct&)) [line 77, column 12]\n " shape="box"] - "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_5" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_7" ; -"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_6" [label="6: DeclStmt \n VARIABLE_DECLARED(f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12); [line 77, column 3]\n " shape="box"] + "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_5" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_6" ; +"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_6" [label="6: Destruction(temporaries cleanup) \n n$12=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12::(&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*,&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12&) [line 77, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12 [line 77, column 41]\n n$14=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*) injected [line 77, column 41]\n " shape="box"] - "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_6" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_5" ; -"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_7" [label="7: DeclStmt \n n$15=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12::(&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*,&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12&) [line 77, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12 [line 77, column 41]\n n$11=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$9:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*) injected [line 77, column 41]\n " shape="box"] + "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_6" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_3" ; +"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_7" [label="7: DeclStmt \n VARIABLE_DECLARED(f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12); [line 77, column 3]\n " shape="box"] - "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_7" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_3" ; -"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_8" [label="8: DeclStmt \n VARIABLE_DECLARED(y:SomeStruct); [line 76, column 3]\n n$16=_fun_SomeStruct::SomeStruct(&y:SomeStruct*) [line 76, column 14]\n " shape="box"] + "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_7" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_5" ; +"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_8" [label="8: DeclStmt \n VARIABLE_DECLARED(y:SomeStruct); [line 76, column 3]\n n$15=_fun_SomeStruct::SomeStruct(&y:SomeStruct*) [line 76, column 14]\n " shape="box"] - "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_8" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_6" ; -"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 75, column 3]\n n$17=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 75, column 14]\n " shape="box"] + "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_8" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_7" ; +"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 75, column 3]\n n$16=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 75, column 14]\n " shape="box"] "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_9" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_8" ; @@ -431,23 +419,23 @@ digraph cfg { "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_4" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_2" ; -"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12); [line 121, column 12]\n n$11=*&xref:SomeStruct& [line 121, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12=(_fun_struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12::operator(),&x,([by ref]n$11 &xref:SomeStruct&)) [line 121, column 12]\n " shape="box"] +"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12); [line 121, column 12]\n n$8=*&xref:SomeStruct& [line 121, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12=(_fun_struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12::operator(),&x,([by ref]n$8 &xref:SomeStruct&)) [line 121, column 12]\n " shape="box"] - "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_5" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_7" ; -"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_6" [label="6: DeclStmt \n VARIABLE_DECLARED(f:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12); [line 121, column 3]\n " shape="box"] + "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_5" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_6" ; +"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_6" [label="6: Destruction(temporaries cleanup) \n n$9=_fun_struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12::(&f:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12&) [line 121, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12 [line 124, column 3]\n n$11=_fun_struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12*) injected [line 124, column 3]\n " shape="box"] - "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_6" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_5" ; -"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_7" [label="7: DeclStmt \n n$12=_fun_struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12::(&f:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12&) [line 121, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12 [line 124, column 3]\n n$9=_fun_struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12*) injected [line 124, column 3]\n " shape="box"] + "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_6" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_3" ; +"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_7" [label="7: DeclStmt \n VARIABLE_DECLARED(f:struct_capture_by_ref::lambda_shared_lambda_lambda1.cpp:121:12); [line 121, column 3]\n " shape="box"] - "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_7" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_3" ; + "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_7" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_5" ; "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_8" [label="8: DeclStmt \n VARIABLE_DECLARED(xref:SomeStruct&); [line 120, column 3]\n *&xref:SomeStruct&=&x [line 120, column 3]\n " shape="box"] - "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_8" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_6" ; -"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 119, column 3]\n n$13=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 119, column 14]\n " shape="box"] + "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_8" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_7" ; +"struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 119, column 3]\n n$12=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 119, column 14]\n " shape="box"] "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_9" -> "struct_capture_by_ref#12577537422211765985.ebc118d2dbc2f2f5b7c5ee63317b20fd_8" ; @@ -466,23 +454,23 @@ digraph cfg { "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_4" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_2" ; -"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12); [line 114, column 12]\n n$12=*&x:SomeStruct& [line 114, column 12]\n n$11=*&xref:SomeStruct& [line 114, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12=(_fun_struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12::operator(),([by value]n$12 &x:SomeStruct&),([by value]n$11 &xref:SomeStruct&)) [line 114, column 12]\n " shape="box"] +"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12); [line 114, column 12]\n n$9=*&x:SomeStruct& [line 114, column 12]\n n$8=*&xref:SomeStruct& [line 114, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12=(_fun_struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12::operator(),([by value]n$9 &x:SomeStruct&),([by value]n$8 &xref:SomeStruct&)) [line 114, column 12]\n " shape="box"] - "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_5" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_7" ; -"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_6" [label="6: DeclStmt \n VARIABLE_DECLARED(f:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12); [line 114, column 3]\n " shape="box"] + "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_5" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_6" ; +"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_6" [label="6: Destruction(temporaries cleanup) \n n$10=_fun_struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12::(&f:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12&) [line 114, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12 [line 114, column 47]\n n$12=_fun_struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12*) injected [line 114, column 47]\n " shape="box"] - "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_6" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_5" ; -"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_7" [label="7: DeclStmt \n n$13=_fun_struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12::(&f:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12&) [line 114, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12 [line 114, column 47]\n n$9=_fun_struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12*) injected [line 114, column 47]\n " shape="box"] + "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_6" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_3" ; +"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_7" [label="7: DeclStmt \n VARIABLE_DECLARED(f:struct_capture_by_value::lambda_shared_lambda_lambda1.cpp:114:12); [line 114, column 3]\n " shape="box"] - "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_7" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_3" ; + "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_7" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_5" ; "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_8" [label="8: DeclStmt \n VARIABLE_DECLARED(xref:SomeStruct&); [line 113, column 3]\n *&xref:SomeStruct&=&x [line 113, column 3]\n " shape="box"] - "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_8" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_6" ; -"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 112, column 3]\n n$14=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 112, column 14]\n " shape="box"] + "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_8" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_7" ; +"struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_9" [label="9: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 112, column 3]\n n$13=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 112, column 14]\n " shape="box"] "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_9" -> "struct_capture_by_value#11699147294788787683.903e0c9fb8b981281b248d9decb0d97d_8" ; @@ -501,7 +489,7 @@ digraph cfg { "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_4" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_2" ; -"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_5" [label="5: DeclStmt \n VARIABLE_DECLARED(xreflambda:SomeStruct&); [line 140, column 12]\n n$11=*&xref:SomeStruct& [line 140, column 42]\n *&xreflambda:SomeStruct&=n$11 [line 140, column 12]\n " shape="box"] +"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_5" [label="5: DeclStmt \n VARIABLE_DECLARED(xreflambda:SomeStruct&); [line 140, column 12]\n n$8=*&xref:SomeStruct& [line 140, column 42]\n *&xreflambda:SomeStruct&=n$8 [line 140, column 12]\n " shape="box"] "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_5" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_8" ; @@ -513,23 +501,23 @@ digraph cfg { "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_7" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_6" ; -"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_8" [label="8: DeclStmt \n n$13=*&xlambda:SomeStruct& [line 140, column 12]\n n$12=*&xreflambda:SomeStruct& [line 140, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12=(_fun_struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12::operator(),([by ref]n$13 &xlambda:SomeStruct&),([by ref]n$12 &xreflambda:SomeStruct&)) [line 140, column 12]\n " shape="box"] +"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_8" [label="8: DeclStmt \n n$10=*&xlambda:SomeStruct& [line 140, column 12]\n n$9=*&xreflambda:SomeStruct& [line 140, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12=(_fun_struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12::operator(),([by ref]n$10 &xlambda:SomeStruct&),([by ref]n$9 &xreflambda:SomeStruct&)) [line 140, column 12]\n " shape="box"] - "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_8" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_10" ; -"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_9" [label="9: DeclStmt \n VARIABLE_DECLARED(f:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12); [line 140, column 3]\n " shape="box"] + "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_8" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_9" ; +"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_9" [label="9: Destruction(temporaries cleanup) \n n$11=_fun_struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12::(&f:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12&) [line 140, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12 [line 143, column 3]\n n$13=_fun_struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12*) injected [line 143, column 3]\n " shape="box"] - "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_9" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_7" ; -"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_10" [label="10: DeclStmt \n n$14=_fun_struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12::(&f:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12&) [line 140, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12 [line 143, column 3]\n n$9=_fun_struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12*) injected [line 143, column 3]\n " shape="box"] + "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_9" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_3" ; +"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_10" [label="10: DeclStmt \n VARIABLE_DECLARED(f:struct_init_capture_by_ref::lambda_shared_lambda_lambda1.cpp:140:12); [line 140, column 3]\n " shape="box"] - "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_10" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_3" ; + "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_10" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_7" ; "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_11" [label="11: DeclStmt \n VARIABLE_DECLARED(xref:SomeStruct&); [line 139, column 3]\n *&xref:SomeStruct&=&x [line 139, column 3]\n " shape="box"] - "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_11" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_9" ; -"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_12" [label="12: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 138, column 3]\n n$15=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 138, column 14]\n " shape="box"] + "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_11" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_10" ; +"struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_12" [label="12: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 138, column 3]\n n$14=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 138, column 14]\n " shape="box"] "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_12" -> "struct_init_capture_by_ref#9205094663270955601.142e205b831e508a8eb59bdbc8b0b42b_11" ; @@ -548,11 +536,11 @@ digraph cfg { "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_4" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_2" ; -"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_5" [label="5: DeclStmt \n VARIABLE_DECLARED(xreflambda:SomeStruct); [line 131, column 12]\n n$11=*&xref:SomeStruct& [line 131, column 39]\n n$12=_fun_SomeStruct::SomeStruct(&xreflambda:SomeStruct*,n$11:SomeStruct&) [line 131, column 39]\n " shape="box"] +"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_5" [label="5: DeclStmt \n VARIABLE_DECLARED(xreflambda:SomeStruct); [line 131, column 12]\n n$8=*&xref:SomeStruct& [line 131, column 39]\n n$9=_fun_SomeStruct::SomeStruct(&xreflambda:SomeStruct*,n$8:SomeStruct&) [line 131, column 39]\n " shape="box"] "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_5" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_8" ; -"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_6" [label="6: DeclStmt \n VARIABLE_DECLARED(xlambda:SomeStruct); [line 131, column 12]\n n$14=_fun_SomeStruct::SomeStruct(&xlambda:SomeStruct*,&x:SomeStruct&) [line 131, column 23]\n " shape="box"] +"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_6" [label="6: DeclStmt \n VARIABLE_DECLARED(xlambda:SomeStruct); [line 131, column 12]\n n$11=_fun_SomeStruct::SomeStruct(&xlambda:SomeStruct*,&x:SomeStruct&) [line 131, column 23]\n " shape="box"] "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_6" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_5" ; @@ -560,30 +548,30 @@ digraph cfg { "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_7" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_6" ; -"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_8" [label="8: DeclStmt \n n$15=*&xlambda:SomeStruct& [line 131, column 12]\n n$13=*&xreflambda:SomeStruct& [line 131, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12=(_fun_struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12::operator(),([by value]n$15 &xlambda:SomeStruct&),([by value]n$13 &xreflambda:SomeStruct&)) [line 131, column 12]\n " shape="box"] +"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_8" [label="8: DeclStmt \n n$12=*&xlambda:SomeStruct& [line 131, column 12]\n n$10=*&xreflambda:SomeStruct& [line 131, column 12]\n *&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12=(_fun_struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12::operator(),([by value]n$12 &xlambda:SomeStruct&),([by value]n$10 &xreflambda:SomeStruct&)) [line 131, column 12]\n " shape="box"] - "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_8" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_10" ; -"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_9" [label="9: DeclStmt \n VARIABLE_DECLARED(f:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12); [line 131, column 3]\n " shape="box"] + "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_8" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_9" ; +"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_9" [label="9: Destruction(temporaries cleanup) \n n$13=_fun_struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12::(&f:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12&) [line 131, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12 [line 133, column 3]\n n$15=_fun_struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12*) injected [line 133, column 3]\n " shape="box"] - "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_9" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_7" ; -"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_10" [label="10: DeclStmt \n n$16=_fun_struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12::(&f:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12*,&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12&) [line 131, column 12]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12 [line 133, column 3]\n n$9=_fun_struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12::~(&0$?%__sil_tmpSIL_materialize_temp__n$7:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12*) injected [line 133, column 3]\n " shape="box"] + "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_9" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_3" ; +"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_10" [label="10: DeclStmt \n VARIABLE_DECLARED(f:struct_init_capture_by_value::lambda_shared_lambda_lambda1.cpp:131:12); [line 131, column 3]\n " shape="box"] - "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_10" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_3" ; + "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_10" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_7" ; "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_11" [label="11: DeclStmt \n VARIABLE_DECLARED(xref:SomeStruct&); [line 130, column 3]\n *&xref:SomeStruct&=&x [line 130, column 3]\n " shape="box"] - "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_11" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_9" ; -"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_12" [label="12: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 129, column 3]\n n$17=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 129, column 14]\n " shape="box"] + "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_11" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_10" ; +"struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_12" [label="12: DeclStmt \n VARIABLE_DECLARED(x:SomeStruct); [line 129, column 3]\n n$16=_fun_SomeStruct::SomeStruct(&x:SomeStruct*) [line 129, column 14]\n " shape="box"] "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_12" -> "struct_init_capture_by_value#3463451947935606399.b06cb2db506297a6236b8f54f65f87a9_11" ; "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_1" [label="1: Start Capture::capture_this_explicit\nFormals: this:Capture*\nLocals: lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19 0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19 \n " color=yellow style=filled] - "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_1" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_5" ; + "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_1" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_6" ; "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_2" [label="2: Exit Capture::capture_this_explicit \n " color=yellow style=filled] @@ -594,19 +582,19 @@ digraph cfg { "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19); [line 51, column 19]\n *&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19=(_fun_Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19::operator(),&this) [line 51, column 19]\n " shape="box"] - "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_4" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_6" ; -"capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_5" [label="5: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19); [line 51, column 5]\n " shape="box"] + "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_4" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_5" ; +"capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_5" [label="5: Destruction(temporaries cleanup) \n n$4=_fun_Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19::(&lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19&) [line 51, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19 [line 51, column 43]\n n$6=_fun_Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19*) injected [line 51, column 43]\n " shape="box"] - "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_5" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_4" ; -"capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_6" [label="6: DeclStmt \n n$7=_fun_Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19::(&lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19&) [line 51, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19 [line 51, column 43]\n n$5=_fun_Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19*) injected [line 51, column 43]\n " shape="box"] + "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_5" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_3" ; +"capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_6" [label="6: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19); [line 51, column 5]\n " shape="box"] - "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_6" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_3" ; + "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_6" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_4" ; "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_1" [label="1: Start Capture::capture_this_with_auto\nFormals: this:Capture*\nLocals: lambda:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19 0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19 \n " color=yellow style=filled] - "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_1" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_5" ; + "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_1" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_6" ; "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_2" [label="2: Exit Capture::capture_this_with_auto \n " color=yellow style=filled] @@ -617,19 +605,19 @@ digraph cfg { "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19); [line 65, column 19]\n *&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19=(_fun_Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19::operator(),&this) [line 65, column 19]\n " shape="box"] - "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_4" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_6" ; -"capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_5" [label="5: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19); [line 65, column 5]\n " shape="box"] + "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_4" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_5" ; +"capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_5" [label="5: Destruction(temporaries cleanup) \n n$4=_fun_Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19::(&lambda:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19&) [line 65, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19 [line 65, column 40]\n n$6=_fun_Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19*) injected [line 65, column 40]\n " shape="box"] - "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_5" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_4" ; -"capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_6" [label="6: DeclStmt \n n$7=_fun_Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19::(&lambda:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19&) [line 65, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19 [line 65, column 40]\n n$5=_fun_Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19*) injected [line 65, column 40]\n " shape="box"] + "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_5" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_3" ; +"capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_6" [label="6: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19); [line 65, column 5]\n " shape="box"] - "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_6" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_3" ; + "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_6" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_4" ; "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_1" [label="1: Start Capture::capture_star_this\nFormals: this:Capture*\nLocals: lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19 0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19 \n " color=yellow style=filled] - "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_1" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_5" ; + "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_1" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_6" ; "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_2" [label="2: Exit Capture::capture_star_this \n " color=yellow style=filled] @@ -637,22 +625,22 @@ digraph cfg { "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_3" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_2" ; -"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19); [line 55, column 19]\n n$7=*&this:Capture* [line 55, column 19]\n *&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19=(_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19::operator(),([by value]n$7 &this:Capture*)) [line 55, column 19]\n " shape="box"] +"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19); [line 55, column 19]\n n$4=*&this:Capture* [line 55, column 19]\n *&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19=(_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19::operator(),([by value]n$4 &this:Capture*)) [line 55, column 19]\n " shape="box"] - "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_4" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_6" ; -"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_5" [label="5: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19); [line 55, column 5]\n " shape="box"] + "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_4" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_5" ; +"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_5" [label="5: Destruction(temporaries cleanup) \n n$5=_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19::(&lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19&) [line 55, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19 [line 57, column 5]\n n$7=_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19*) injected [line 57, column 5]\n " shape="box"] - "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_5" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_4" ; -"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_6" [label="6: DeclStmt \n n$8=_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19::(&lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19&) [line 55, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19 [line 57, column 5]\n n$5=_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19*) injected [line 57, column 5]\n " shape="box"] + "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_5" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_3" ; +"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_6" [label="6: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19); [line 55, column 5]\n " shape="box"] - "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_6" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_3" ; + "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_6" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_4" ; "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_1" [label="1: Start Capture::capture_this_with_equal\nFormals: this:Capture*\nLocals: lambda:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19 0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19 \n " color=yellow style=filled] - "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_1" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_5" ; + "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_1" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_6" ; "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_2" [label="2: Exit Capture::capture_this_with_equal \n " color=yellow style=filled] @@ -663,15 +651,15 @@ digraph cfg { "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_4" [label="4: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19); [line 61, column 19]\n *&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19=(_fun_Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19::operator(),&this) [line 61, column 19]\n " shape="box"] - "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_4" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_6" ; -"capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_5" [label="5: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19); [line 61, column 5]\n " shape="box"] + "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_4" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_5" ; +"capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_5" [label="5: Destruction(temporaries cleanup) \n n$4=_fun_Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19::(&lambda:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19&) [line 61, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19 [line 61, column 40]\n n$6=_fun_Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19*) injected [line 61, column 40]\n " shape="box"] - "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_5" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_4" ; -"capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_6" [label="6: DeclStmt \n n$7=_fun_Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19::(&lambda:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19*,&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19&) [line 61, column 19]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19 [line 61, column 40]\n n$5=_fun_Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19::~(&0$?%__sil_tmpSIL_materialize_temp__n$3:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19*) injected [line 61, column 40]\n " shape="box"] + "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_5" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_3" ; +"capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_6" [label="6: DeclStmt \n VARIABLE_DECLARED(lambda:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19); [line 61, column 5]\n " shape="box"] - "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_6" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_3" ; + "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_6" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_4" ; "Capture#Capture#{12117490113068134497|constexpr}.98ffcc03a8acaf01f37e687e09517440_1" [label="1: Start Capture::Capture\nFormals: this:Capture* __param_0:Capture&\nLocals: \n " color=yellow style=filled] diff --git a/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot index ef79749da..75659e068 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot @@ -104,22 +104,22 @@ digraph cfg { "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_1" [label="1: Start pass_by_val::make_id\nFormals: args:int& args:int& args:int& __return_param:pass_by_val::Id*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id \n " color=yellow style=filled] - "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_1" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_4" ; + "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_1" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_5" ; "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_2" [label="2: Exit pass_by_val::make_id \n " color=yellow style=filled] -"make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id); [line 59, column 10]\n n$5=*&args:int& [line 59, column 35]\n n$6=_fun_std::forward(n$5:int&) [line 59, column 16]\n n$7=*n$6:int [line 59, column 16]\n n$8=*&args:int& [line 59, column 35]\n n$9=_fun_std::forward(n$8:int&) [line 59, column 16]\n n$10=*&args:int& [line 59, column 35]\n n$11=_fun_std::forward(n$10:int&) [line 59, column 16]\n n$12=_fun_pass_by_val::Id::Id(&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*,n$7:int,n$9:int&,n$11:int&) [line 59, column 10]\n " shape="box"] +"make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id); [line 59, column 10]\n n$2=*&args:int& [line 59, column 35]\n n$3=_fun_std::forward(n$2:int&) [line 59, column 16]\n n$4=*n$3:int [line 59, column 16]\n n$5=*&args:int& [line 59, column 35]\n n$6=_fun_std::forward(n$5:int&) [line 59, column 16]\n n$7=*&args:int& [line 59, column 35]\n n$8=_fun_std::forward(n$7:int&) [line 59, column 16]\n n$9=_fun_pass_by_val::Id::Id(&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*,n$4:int,n$6:int&,n$8:int&) [line 59, column 10]\n " shape="box"] - "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_3" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_5" ; -"make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_4" [label="4: Return Stmt \n n$0=*&__return_param:pass_by_val::Id* [line 59, column 3]\n " shape="box"] + "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_3" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_4" ; +"make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_4" [label="4: Destruction(temporaries cleanup) \n n$10=_fun_pass_by_val::Id::Id(n$0:pass_by_val::Id*,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id&) [line 59, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id [line 59, column 43]\n n$12=_fun_pass_by_val::Id::~Id(&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*) injected [line 59, column 43]\n " shape="box"] - "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_4" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_3" ; -"make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_5" [label="5: Return Stmt \n n$13=_fun_pass_by_val::Id::Id(n$0:pass_by_val::Id*,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id&) [line 59, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id [line 59, column 43]\n n$3=_fun_pass_by_val::Id::~Id(&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*) injected [line 59, column 43]\n " shape="box"] + "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_4" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_6" ; +"make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_5" [label="5: Return Stmt \n n$0=*&__return_param:pass_by_val::Id* [line 59, column 3]\n " shape="box"] - "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_5" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_6" ; + "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_5" -> "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_3" ; "make_id#pass_by_val(class pass_by_val::Id)#6647322778693099135.704a07df7f1fd4912e21bd274744a5e0_6" [label="6: Return Stmt \n " shape="box"] @@ -139,18 +139,18 @@ digraph cfg { "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_4" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_3" ; -"perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_5" [label="5: DeclStmt \n n$7=_fun_pass_by_val::make_id(&a:int&,&b:int&,&0$?%__sil_tmpSIL_materialize_temp__n$2:int&,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*) assign_last [line 64, column 10]\n " shape="box"] +"perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_5" [label="5: DeclStmt \n n$4=_fun_pass_by_val::make_id(&a:int&,&b:int&,&0$?%__sil_tmpSIL_materialize_temp__n$2:int&,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*) assign_last [line 64, column 10]\n " shape="box"] - "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_5" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_7" ; -"perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_6" [label="6: Return Stmt \n n$0=*&__return_param:pass_by_val::Id* [line 64, column 3]\n " shape="box"] + "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_5" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_6" ; +"perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_6" [label="6: Destruction(temporaries cleanup) \n n$5=_fun_pass_by_val::Id::Id(n$0:pass_by_val::Id*,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id&) [line 64, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id [line 64, column 30]\n n$7=_fun_pass_by_val::Id::~Id(&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*) injected [line 64, column 30]\n " shape="box"] - "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_6" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_4" ; -"perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_7" [label="7: Return Stmt \n n$8=_fun_pass_by_val::Id::Id(n$0:pass_by_val::Id*,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id&) [line 64, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id [line 64, column 30]\n n$4=_fun_pass_by_val::Id::~Id(&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id*) injected [line 64, column 30]\n " shape="box"] + "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_6" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_8" ; +"perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_7" [label="7: Return Stmt \n n$0=*&__return_param:pass_by_val::Id* [line 64, column 3]\n " shape="box"] - "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_7" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_8" ; + "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_7" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_4" ; "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_8" [label="8: Return Stmt \n " shape="box"] @@ -158,7 +158,7 @@ digraph cfg { "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_9" [label="9: DeclStmt \n VARIABLE_DECLARED(b:int); [line 63, column 3]\n *&b:int=1 [line 63, column 3]\n " shape="box"] - "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_9" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_6" ; + "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_9" -> "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_7" ; "perfect_forwarding_by_ref#pass_by_val(class pass_by_val::Id)#7578991627406493712.4a78b0c805a8de47693f8c723da2ec49_10" [label="10: DeclStmt \n VARIABLE_DECLARED(a:int); [line 63, column 3]\n *&a:int=0 [line 63, column 3]\n " shape="box"] diff --git a/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot index 88f89661e..8b003625e 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot @@ -144,14 +144,14 @@ digraph cfg { "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_12" -> "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_6" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_1" [label="1: Start conversion_operator::y_branch_div0\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X 0$?%__sil_tmpSIL_materialize_temp__n$14:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X v:int 0$?%__sil_tmpSIL_materialize_temp__n$23:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X y:conversion_operator::Y \n " color=yellow style=filled] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_1" [label="1: Start conversion_operator::y_branch_div0\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X 0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$12:conversion_operator::X v:int 0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X const 0$?%__sil_tmpSIL_materialize_temp__n$21:conversion_operator::X y:conversion_operator::Y \n " color=yellow style=filled] - "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_1" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_24" ; + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_1" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_25" ; "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_2" [label="2: Exit conversion_operator::y_branch_div0 \n " color=yellow style=filled] -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const ); [line 49, column 13]\n _=*&y:conversion_operator::Y [line 49, column 13]\n n$9=_fun_conversion_operator::Y::operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X*) assign_last [line 49, column 13]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const ); [line 49, column 13]\n _=*&y:conversion_operator::Y [line 49, column 13]\n n$4=_fun_conversion_operator::Y::operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X*) assign_last [line 49, column 13]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" ; @@ -159,15 +159,15 @@ digraph cfg { "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_4" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_3" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" [label="5: DeclStmt \n n$10=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const &) [line 49, column 10]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" [label="5: DeclStmt \n n$5=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const &) [line 49, column 10]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_5" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" [label="6: Return Stmt \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X [line 49, column 10]\n n$12=_fun_conversion_operator::X::operator_int(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X&) [line 49, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const [line 49, column 13]\n n$3=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const *) injected [line 49, column 13]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X [line 49, column 13]\n n$5=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X*) injected [line 49, column 13]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" [label="6: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X [line 49, column 10]\n n$7=_fun_conversion_operator::X::operator_int(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X&) [line 49, column 10]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const [line 49, column 13]\n n$11=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const *) injected [line 49, column 13]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X [line 49, column 13]\n n$9=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:conversion_operator::X*) injected [line 49, column 13]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_6" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" [label="7: Return Stmt \n *&return:int=n$12 [line 49, column 3]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" [label="7: Return Stmt \n *&return:int=n$7 [line 49, column 3]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_7" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_2" ; @@ -175,71 +175,75 @@ digraph cfg { "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_8" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_4" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$14:conversion_operator::X const ); [line 45, column 10]\n _=*&y:conversion_operator::Y [line 45, column 10]\n n$17=_fun_conversion_operator::Y::operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$14:conversion_operator::X*) assign_last [line 45, column 10]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" [label="9: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X const ); [line 45, column 10]\n _=*&y:conversion_operator::Y [line 45, column 10]\n n$16=_fun_conversion_operator::Y::operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X*) assign_last [line 45, column 10]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_11" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_10" [label="10: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X); [line 45, column 7]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_10" [label="10: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$12:conversion_operator::X); [line 45, column 7]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_10" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_9" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_11" [label="11: DeclStmt \n n$18=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$14:conversion_operator::X const &) [line 45, column 7]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_11" [label="11: DeclStmt \n n$17=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$12:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X const &) [line 45, column 7]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_11" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" [label="12: Call _fun_conversion_operator::X::operator_bool \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X [line 45, column 7]\n n$20=_fun_conversion_operator::X::operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$13:conversion_operator::X&) [line 45, column 7]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" [label="12: Call _fun_conversion_operator::X::operator_bool \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$12:conversion_operator::X [line 45, column 7]\n n$19=_fun_conversion_operator::X::operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$12:conversion_operator::X&) [line 45, column 7]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_13" ; "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_12" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_14" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_13" [label="13: Prune (true branch, if) \n PRUNE(n$20, true); [line 45, column 7]\n " shape="invhouse"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_13" [label="13: Prune (true branch, if) \n PRUNE(n$19, true); [line 45, column 7]\n " shape="invhouse"] - "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_13" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_20" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_14" [label="14: Prune (false branch, if) \n PRUNE(!n$20, false); [line 45, column 7]\n " shape="invhouse"] + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_13" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_21" ; +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_14" [label="14: Prune (false branch, if) \n PRUNE(!n$19, false); [line 45, column 7]\n " shape="invhouse"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_14" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_8" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_15" [label="15: Return Stmt \n n$21=*&v:int [line 47, column 16]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_15" [label="15: Return Stmt \n n$20=*&v:int [line 47, column 16]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_15" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_16" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_16" [label="16: Return Stmt \n *&return:int=(1 / n$21) [line 47, column 5]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_16" [label="16: Return Stmt \n *&return:int=(1 / n$20) [line 47, column 5]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_16" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_2" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_17" [label="17: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$23:conversion_operator::X const ); [line 46, column 16]\n _=*&y:conversion_operator::Y [line 46, column 16]\n n$31=_fun_conversion_operator::Y::operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$23:conversion_operator::X*) assign_last [line 46, column 16]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_17" [label="17: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X const ); [line 46, column 16]\n _=*&y:conversion_operator::Y [line 46, column 16]\n n$25=_fun_conversion_operator::Y::operator_X(&y:conversion_operator::Y&,&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X*) assign_last [line 46, column 16]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_17" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_19" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_18" [label="18: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X); [line 46, column 13]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_18" [label="18: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$21:conversion_operator::X); [line 46, column 13]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_18" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_17" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_19" [label="19: DeclStmt \n n$32=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$23:conversion_operator::X const &) [line 46, column 13]\n " shape="box"] +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_19" [label="19: DeclStmt \n n$26=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$21:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X const &) [line 46, column 13]\n " shape="box"] - "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_19" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_21" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_20" [label="20: DeclStmt \n VARIABLE_DECLARED(v:int); [line 46, column 5]\n " shape="box"] + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_19" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_20" ; +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_20" [label="20: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$21:conversion_operator::X [line 46, column 13]\n n$28=_fun_conversion_operator::X::operator_int(&0$?%__sil_tmpSIL_materialize_temp__n$21:conversion_operator::X&) [line 46, column 13]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X const [line 46, column 16]\n n$32=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X const *) injected [line 46, column 16]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$21:conversion_operator::X [line 46, column 16]\n n$30=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$21:conversion_operator::X*) injected [line 46, column 16]\n " shape="box"] - "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_20" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_18" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_21" [label="21: DeclStmt \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X [line 46, column 13]\n n$34=_fun_conversion_operator::X::operator_int(&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X&) [line 46, column 13]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$23:conversion_operator::X const [line 46, column 16]\n n$25=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$23:conversion_operator::X const *) injected [line 46, column 16]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X [line 46, column 16]\n n$27=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$22:conversion_operator::X*) injected [line 46, column 16]\n *&v:int=n$34 [line 46, column 5]\n " shape="box"] + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_20" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_22" ; +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_21" [label="21: DeclStmt \n VARIABLE_DECLARED(v:int); [line 46, column 5]\n " shape="box"] - "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_21" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_15" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_22" [label="22: BinaryOperatorStmt: Assign \n *&y.b:int=1 [line 44, column 3]\n " shape="box"] + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_21" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_18" ; +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_22" [label="22: DeclStmt \n *&v:int=n$28 [line 46, column 5]\n " shape="box"] - "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_22" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_10" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_23" [label="23: BinaryOperatorStmt: Assign \n *&y.f:int=0 [line 43, column 3]\n " shape="box"] + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_22" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_15" ; +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_23" [label="23: BinaryOperatorStmt: Assign \n *&y.b:int=1 [line 44, column 3]\n " shape="box"] - "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_23" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_22" ; -"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_24" [label="24: DeclStmt \n VARIABLE_DECLARED(y:conversion_operator::Y); [line 42, column 3]\n n$37=_fun_conversion_operator::Y::Y(&y:conversion_operator::Y*) [line 42, column 5]\n " shape="box"] + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_23" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_10" ; +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_24" [label="24: BinaryOperatorStmt: Assign \n *&y.f:int=0 [line 43, column 3]\n " shape="box"] "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_24" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_23" ; +"y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_25" [label="25: DeclStmt \n VARIABLE_DECLARED(y:conversion_operator::Y); [line 42, column 3]\n n$35=_fun_conversion_operator::Y::Y(&y:conversion_operator::Y*) [line 42, column 5]\n " shape="box"] + + + "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_25" -> "y_branch_div0#conversion_operator#7606471872775172252.4a93f184f35976e9e7dc6663bc4d47a2_24" ; "operator_int#X#conversion_operator#(11584960464019118495).bbe1ab264905e56e75a1b45ae475ffe0_1" [label="1: Start conversion_operator::X::operator_int\nFormals: this:conversion_operator::X*\nLocals: \n " color=yellow style=filled] @@ -303,22 +307,22 @@ digraph cfg { "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_1" [label="1: Start conversion_operator::Y::operator_X\nFormals: this:conversion_operator::Y* __return_param:conversion_operator::X*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const \n " color=yellow style=filled] - "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_1" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_4" ; + "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_1" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_5" ; "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_2" [label="2: Exit conversion_operator::Y::operator_X \n " color=yellow style=filled] -"operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const ); [line 27, column 25]\n n$5=*&this:conversion_operator::Y* [line 27, column 27]\n n$6=*n$5.f:int [line 27, column 27]\n n$7=*&this:conversion_operator::Y* [line 27, column 30]\n n$8=*n$7.b:int [line 27, column 30]\n n$9=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const *,n$6:int,n$8:_Bool) [line 27, column 25]\n " shape="box"] +"operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const ); [line 27, column 25]\n n$2=*&this:conversion_operator::Y* [line 27, column 27]\n n$3=*n$2.f:int [line 27, column 27]\n n$4=*&this:conversion_operator::Y* [line 27, column 30]\n n$5=*n$4.b:int [line 27, column 30]\n n$6=_fun_conversion_operator::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const *,n$3:int,n$5:_Bool) [line 27, column 25]\n " shape="box"] - "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_3" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_5" ; -"operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_4" [label="4: Return Stmt \n n$0=*&__return_param:conversion_operator::X* [line 27, column 18]\n " shape="box"] + "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_3" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_4" ; +"operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_4" [label="4: Destruction(temporaries cleanup) \n n$7=_fun_conversion_operator::X::X(n$0:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const &) [line 27, column 25]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const [line 27, column 31]\n n$9=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const *) injected [line 27, column 31]\n " shape="box"] - "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_4" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_3" ; -"operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_5" [label="5: Return Stmt \n n$10=_fun_conversion_operator::X::X(n$0:conversion_operator::X*,&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const &) [line 27, column 25]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const [line 27, column 31]\n n$3=_fun_conversion_operator::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$1:conversion_operator::X const *) injected [line 27, column 31]\n " shape="box"] + "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_4" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_6" ; +"operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_5" [label="5: Return Stmt \n n$0=*&__return_param:conversion_operator::X* [line 27, column 18]\n " shape="box"] - "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_5" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_6" ; + "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_5" -> "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_3" ; "operator_X#Y#conversion_operator(class conversion_operator::X)#(9875474444891926125).86894a9a1bdbf53dc3721d092420d60c_6" [label="6: Return Stmt \n " shape="box"] diff --git a/infer/tests/codetoanalyze/cpp/shared/methods/return_struct.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/return_struct.cpp.dot index ea0f8a684..f5f67e712 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/return_struct.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/return_struct.cpp.dot @@ -3,7 +3,7 @@ digraph cfg { "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_1" [label="1: Start test\nFormals: a:A*\nLocals: x:X 0$?%__sil_tmpSIL_materialize_temp__n$4:X \n " color=yellow style=filled] - "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_1" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_6" ; + "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_1" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_7" ; "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_2" [label="2: Exit test \n " color=yellow style=filled] @@ -15,18 +15,18 @@ digraph cfg { "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_4" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_2" ; -"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:X); [line 20, column 9]\n n$8=*&a:A* [line 20, column 9]\n _=*n$8:A [line 20, column 9]\n n$11=_fun_A::get(n$8:A*,1:int,&0$?%__sil_tmpSIL_materialize_temp__n$4:X*) assign_last [line 20, column 9]\n " shape="box"] +"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:X); [line 20, column 9]\n n$5=*&a:A* [line 20, column 9]\n _=*n$5:A [line 20, column 9]\n n$8=_fun_A::get(n$5:A*,1:int,&0$?%__sil_tmpSIL_materialize_temp__n$4:X*) assign_last [line 20, column 9]\n " shape="box"] - "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_5" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_7" ; -"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_6" [label="6: DeclStmt \n VARIABLE_DECLARED(x:X); [line 20, column 3]\n " shape="box"] + "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_5" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_6" ; +"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_6" [label="6: Destruction(temporaries cleanup) \n n$9=_fun_X::X(&x:X*,&0$?%__sil_tmpSIL_materialize_temp__n$4:X&) [line 20, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:X [line 20, column 17]\n n$11=_fun_X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$4:X*) injected [line 20, column 17]\n " shape="box"] - "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_6" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_5" ; -"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_7" [label="7: DeclStmt \n n$12=_fun_X::X(&x:X*,&0$?%__sil_tmpSIL_materialize_temp__n$4:X&) [line 20, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:X [line 20, column 17]\n n$6=_fun_X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$4:X*) injected [line 20, column 17]\n " shape="box"] + "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_6" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_3" ; +"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_7" [label="7: DeclStmt \n VARIABLE_DECLARED(x:X); [line 20, column 3]\n " shape="box"] - "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_7" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_3" ; + "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_7" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_5" ; "get#A(class X)#(1761444600576643509).0f83d3543d984a8645cb78162580d93f_1" [label="1: Start A::get\nFormals: this:A* p:int __return_param:X*\nLocals: x:X \n " color=yellow style=filled] diff --git a/infer/tests/codetoanalyze/cpp/shared/types/inheritance_casts.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/types/inheritance_casts.cpp.dot index c959cb798..acaad7854 100644 --- a/infer/tests/codetoanalyze/cpp/shared/types/inheritance_casts.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/types/inheritance_casts.cpp.dot @@ -22,15 +22,15 @@ digraph cfg { "div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_2" [label="2: Exit inheritance_casts::div0_A \n " color=yellow style=filled] -"div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const ); [line 26, column 27]\n n$5=_fun_inheritance_casts::getA(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A*) assign_last [line 26, column 27]\n " shape="box"] +"div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const ); [line 26, column 27]\n n$2=_fun_inheritance_casts::getA(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A*) assign_last [line 26, column 27]\n " shape="box"] "div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_3" -> "div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_4" ; -"div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_4" [label="4: Return Stmt \n n$6=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const &) [line 26, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const [line 26, column 34]\n n$2=_fun_inheritance_casts::A::~A(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const *) injected [line 26, column 34]\n " shape="box"] +"div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_4" [label="4: Destruction(temporaries cleanup) \n n$3=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const &) [line 26, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const [line 26, column 34]\n n$5=_fun_inheritance_casts::A::~A(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const *) injected [line 26, column 34]\n " shape="box"] "div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_4" -> "div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_5" ; -"div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_5" [label="5: Return Stmt \n *&return:int=n$6 [line 26, column 16]\n " shape="box"] +"div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_5" [label="5: Return Stmt \n *&return:int=n$3 [line 26, column 16]\n " shape="box"] "div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_5" -> "div0_A#inheritance_casts#7658516495554603699.e5c3e3413f6eac12dda7dd76db597c34_2" ; @@ -41,15 +41,15 @@ digraph cfg { "div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_2" [label="2: Exit inheritance_casts::div0_B \n " color=yellow style=filled] -"div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const ); [line 30, column 27]\n n$5=_fun_inheritance_casts::getB(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B*) assign_last [line 30, column 27]\n " shape="box"] +"div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const ); [line 30, column 27]\n n$2=_fun_inheritance_casts::getB(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B*) assign_last [line 30, column 27]\n " shape="box"] "div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_3" -> "div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_4" ; -"div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_4" [label="4: Return Stmt \n n$6=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const &) [line 30, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const [line 30, column 34]\n n$2=_fun_inheritance_casts::B::~B(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const *) injected [line 30, column 34]\n " shape="box"] +"div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_4" [label="4: Destruction(temporaries cleanup) \n n$3=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const &) [line 30, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const [line 30, column 34]\n n$5=_fun_inheritance_casts::B::~B(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const *) injected [line 30, column 34]\n " shape="box"] "div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_4" -> "div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_5" ; -"div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_5" [label="5: Return Stmt \n *&return:int=n$6 [line 30, column 16]\n " shape="box"] +"div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_5" [label="5: Return Stmt \n *&return:int=n$3 [line 30, column 16]\n " shape="box"] "div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_5" -> "div0_B#inheritance_casts#9651791439006644302.4d2c177357a796fa9b436df4f92f3de8_2" ; @@ -60,15 +60,15 @@ digraph cfg { "div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_2" [label="2: Exit inheritance_casts::div1_A \n " color=yellow style=filled] -"div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const ); [line 28, column 27]\n n$5=_fun_inheritance_casts::getA(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A*) assign_last [line 28, column 27]\n " shape="box"] +"div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const ); [line 28, column 27]\n n$2=_fun_inheritance_casts::getA(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A*) assign_last [line 28, column 27]\n " shape="box"] "div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_3" -> "div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_4" ; -"div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_4" [label="4: Return Stmt \n n$6=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const &) [line 28, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const [line 28, column 34]\n n$2=_fun_inheritance_casts::A::~A(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const *) injected [line 28, column 34]\n " shape="box"] +"div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_4" [label="4: Destruction(temporaries cleanup) \n n$3=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const &) [line 28, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const [line 28, column 34]\n n$5=_fun_inheritance_casts::A::~A(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::A const *) injected [line 28, column 34]\n " shape="box"] "div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_4" -> "div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_5" ; -"div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_5" [label="5: Return Stmt \n *&return:int=n$6 [line 28, column 16]\n " shape="box"] +"div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_5" [label="5: Return Stmt \n *&return:int=n$3 [line 28, column 16]\n " shape="box"] "div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_5" -> "div1_A#inheritance_casts#14706027417800210732.96d94ec773e2890c763d57de8a52982b_2" ; @@ -79,15 +79,15 @@ digraph cfg { "div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_2" [label="2: Exit inheritance_casts::div1_B \n " color=yellow style=filled] -"div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const ); [line 32, column 27]\n n$5=_fun_inheritance_casts::getB(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B*) assign_last [line 32, column 27]\n " shape="box"] +"div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const ); [line 32, column 27]\n n$2=_fun_inheritance_casts::getB(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B*) assign_last [line 32, column 27]\n " shape="box"] "div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_3" -> "div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_4" ; -"div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_4" [label="4: Return Stmt \n n$6=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const &) [line 32, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const [line 32, column 34]\n n$2=_fun_inheritance_casts::B::~B(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const *) injected [line 32, column 34]\n " shape="box"] +"div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_4" [label="4: Destruction(temporaries cleanup) \n n$3=_fun_inheritance_casts::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const &) [line 32, column 23]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const [line 32, column 34]\n n$5=_fun_inheritance_casts::B::~B(&0$?%__sil_tmpSIL_materialize_temp__n$0:inheritance_casts::B const *) injected [line 32, column 34]\n " shape="box"] "div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_4" -> "div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_5" ; -"div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_5" [label="5: Return Stmt \n *&return:int=n$6 [line 32, column 16]\n " shape="box"] +"div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_5" [label="5: Return Stmt \n *&return:int=n$3 [line 32, column 16]\n " shape="box"] "div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_5" -> "div1_B#inheritance_casts#15202051198007397773.6fa30ed113dcaca42095f52f33fb0c86_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/types/return_struct.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/types/return_struct.cpp.dot index b5db516ab..7ad15f7de 100644 --- a/infer/tests/codetoanalyze/cpp/shared/types/return_struct.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/types/return_struct.cpp.dot @@ -30,7 +30,7 @@ digraph cfg { "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_1" [label="1: Start return_struct::get_div0\nFormals: \nLocals: x:return_struct::X 0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const \n " color=yellow style=filled] - "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_1" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_6" ; + "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_1" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_7" ; "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_2" [label="2: Exit return_struct::get_div0 \n " color=yellow style=filled] @@ -42,22 +42,22 @@ digraph cfg { "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_4" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_2" ; -"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const ); [line 26, column 9]\n n$9=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X*) assign_last [line 26, column 9]\n " shape="box"] +"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const ); [line 26, column 9]\n n$6=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X*) assign_last [line 26, column 9]\n " shape="box"] - "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_5" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_7" ; -"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_6" [label="6: DeclStmt \n VARIABLE_DECLARED(x:return_struct::X); [line 26, column 3]\n " shape="box"] + "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_5" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_6" ; +"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_6" [label="6: Destruction(temporaries cleanup) \n n$7=_fun_return_struct::X::X(&x:return_struct::X*,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const &) [line 26, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const [line 26, column 14]\n n$9=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const *) injected [line 26, column 14]\n " shape="box"] - "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_6" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_5" ; -"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_7" [label="7: DeclStmt \n n$10=_fun_return_struct::X::X(&x:return_struct::X*,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const &) [line 26, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const [line 26, column 14]\n n$6=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const *) injected [line 26, column 14]\n " shape="box"] + "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_6" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_3" ; +"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_7" [label="7: DeclStmt \n VARIABLE_DECLARED(x:return_struct::X); [line 26, column 3]\n " shape="box"] - "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_7" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_3" ; + "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_7" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_5" ; "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_1" [label="1: Start return_struct::get_div1\nFormals: \nLocals: x:return_struct::X 0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const \n " color=yellow style=filled] - "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_1" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_6" ; + "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_1" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_7" ; "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_2" [label="2: Exit return_struct::get_div1 \n " color=yellow style=filled] @@ -69,49 +69,45 @@ digraph cfg { "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_4" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_2" ; -"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const ); [line 38, column 9]\n n$9=_fun_return_struct::get(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X*) assign_last [line 38, column 9]\n " shape="box"] +"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_5" [label="5: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const ); [line 38, column 9]\n n$6=_fun_return_struct::get(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X*) assign_last [line 38, column 9]\n " shape="box"] - "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_5" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_7" ; -"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_6" [label="6: DeclStmt \n VARIABLE_DECLARED(x:return_struct::X); [line 38, column 3]\n " shape="box"] + "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_5" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_6" ; +"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_6" [label="6: Destruction(temporaries cleanup) \n n$7=_fun_return_struct::X::X(&x:return_struct::X*,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const &) [line 38, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const [line 38, column 14]\n n$9=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const *) injected [line 38, column 14]\n " shape="box"] - "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_6" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_5" ; -"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_7" [label="7: DeclStmt \n n$10=_fun_return_struct::X::X(&x:return_struct::X*,&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const &) [line 38, column 9]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const [line 38, column 14]\n n$6=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$4:return_struct::X const *) injected [line 38, column 14]\n " shape="box"] + "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_6" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_3" ; +"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_7" [label="7: DeclStmt \n VARIABLE_DECLARED(x:return_struct::X); [line 38, column 3]\n " shape="box"] - "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_7" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_3" ; -"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_1" [label="1: Start return_struct::get_field_div0\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X 0$?%__sil_tmpSIL_materialize_temp__n$7:return_struct::X \n " color=yellow style=filled] + "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_7" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_5" ; +"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_1" [label="1: Start return_struct::get_field_div0\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X 0$?%__sil_tmpSIL_materialize_temp__n$6:return_struct::X \n " color=yellow style=filled] - "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_1" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_7" ; + "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_1" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_6" ; "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_2" [label="2: Exit return_struct::get_field_div0 \n " color=yellow style=filled] -"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 32, column 14]\n n$5=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 32, column 14]\n " shape="box"] +"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 32, column 14]\n n$2=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 32, column 14]\n " shape="box"] "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_3" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_4" ; -"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_4" [label="4: Return Stmt \n n$6=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 32, column 14]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 32, column 21]\n n$2=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 32, column 21]\n " shape="box"] +"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_4" [label="4: Destruction(temporaries cleanup) \n n$3=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 32, column 14]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 32, column 21]\n n$5=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 32, column 21]\n " shape="box"] "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_4" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_5" ; -"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_5" [label="5: Return Stmt \n *&return:int=(1 / n$6) [line 32, column 3]\n " shape="box"] +"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_5" [label="5: Return Stmt \n *&return:int=(1 / n$3) [line 32, column 3]\n " shape="box"] "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_5" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_2" ; -"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_6" [label="6: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:return_struct::X [line 31, column 15]\n n$9=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$7:return_struct::X*) injected [line 31, column 15]\n " shape="box"] +"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_6" [label="6: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$6:return_struct::X); [line 31, column 3]\n n$8=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$6:return_struct::X*) assign_last [line 31, column 3]\n " shape="box"] - "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_6" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_3" ; -"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_7" [label="7: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$7:return_struct::X); [line 31, column 3]\n n$12=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$7:return_struct::X*) assign_last [line 31, column 3]\n " shape="box"] + "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_6" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_7" ; +"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_7" [label="7: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:return_struct::X [line 31, column 3]\n n$10=_fun_return_struct::X::skip(&0$?%__sil_tmpSIL_materialize_temp__n$6:return_struct::X&) [line 31, column 3]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$6:return_struct::X [line 31, column 15]\n n$12=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$6:return_struct::X*) injected [line 31, column 15]\n " shape="box"] - "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_7" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_8" ; -"get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_8" [label="8: Call _fun_return_struct::X::skip \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$7:return_struct::X [line 31, column 3]\n n$14=_fun_return_struct::X::skip(&0$?%__sil_tmpSIL_materialize_temp__n$7:return_struct::X&) [line 31, column 3]\n " shape="box"] - - - "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_8" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_6" ; + "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_7" -> "get_field_div0#return_struct#5765383981880135147.23dc82d8c29aaec22d9b9a68808820c3_3" ; "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_1" [label="1: Start return_struct::get_field_div1\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X \n " color=yellow style=filled] @@ -119,15 +115,15 @@ digraph cfg { "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_2" [label="2: Exit return_struct::get_field_div1 \n " color=yellow style=filled] -"get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 42, column 35]\n n$5=_fun_return_struct::get(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 42, column 35]\n " shape="box"] +"get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 42, column 35]\n n$2=_fun_return_struct::get(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 42, column 35]\n " shape="box"] "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_3" -> "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_4" ; -"get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_4" [label="4: Return Stmt \n n$6=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 42, column 35]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 42, column 42]\n n$2=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 42, column 42]\n " shape="box"] +"get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_4" [label="4: Destruction(temporaries cleanup) \n n$3=*&0$?%__sil_tmpSIL_materialize_temp__n$0.f:int [line 42, column 35]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 42, column 42]\n n$5=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 42, column 42]\n " shape="box"] "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_4" -> "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_5" ; -"get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_5" [label="5: Return Stmt \n *&return:int=(1 / n$6) [line 42, column 24]\n " shape="box"] +"get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_5" [label="5: Return Stmt \n *&return:int=(1 / n$3) [line 42, column 24]\n " shape="box"] "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_5" -> "get_field_div1#return_struct#6265027354366635900.8e009a5c61cd6a7375811ae0019c838c_2" ; @@ -138,15 +134,15 @@ digraph cfg { "get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_2" [label="2: Exit return_struct::get_method_div0 \n " color=yellow style=filled] -"get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 35, column 32]\n n$5=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 35, column 32]\n " shape="box"] +"get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 35, column 32]\n n$2=_fun_return_struct::get(0:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 35, column 32]\n " shape="box"] "get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_3" -> "get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_4" ; -"get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_4" [label="4: Return Stmt \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 35, column 32]\n n$7=_fun_return_struct::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X&) [line 35, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 35, column 43]\n n$2=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 35, column 43]\n " shape="box"] +"get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_4" [label="4: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 35, column 32]\n n$4=_fun_return_struct::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X&) [line 35, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 35, column 43]\n n$6=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 35, column 43]\n " shape="box"] "get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_4" -> "get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_5" ; -"get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_5" [label="5: Return Stmt \n *&return:int=n$7 [line 35, column 25]\n " shape="box"] +"get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_5" [label="5: Return Stmt \n *&return:int=n$4 [line 35, column 25]\n " shape="box"] "get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_5" -> "get_method_div0#return_struct#1033779568239724265.1e897486d64ba4a977e56cdd041d6ba7_2" ; @@ -157,15 +153,15 @@ digraph cfg { "get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_2" [label="2: Exit return_struct::get_method_div1 \n " color=yellow style=filled] -"get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 44, column 32]\n n$5=_fun_return_struct::get(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 44, column 32]\n " shape="box"] +"get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X); [line 44, column 32]\n n$2=_fun_return_struct::get(1:int,&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) assign_last [line 44, column 32]\n " shape="box"] "get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_3" -> "get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_4" ; -"get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_4" [label="4: Return Stmt \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 44, column 32]\n n$7=_fun_return_struct::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X&) [line 44, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 44, column 43]\n n$2=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 44, column 43]\n " shape="box"] +"get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_4" [label="4: Destruction(temporaries cleanup) \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 44, column 32]\n n$4=_fun_return_struct::X::div(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X&) [line 44, column 32]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X [line 44, column 43]\n n$6=_fun_return_struct::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:return_struct::X*) injected [line 44, column 43]\n " shape="box"] "get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_4" -> "get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_5" ; -"get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_5" [label="5: Return Stmt \n *&return:int=n$7 [line 44, column 25]\n " shape="box"] +"get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_5" [label="5: Return Stmt \n *&return:int=n$4 [line 44, column 25]\n " shape="box"] "get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_5" -> "get_method_div1#return_struct#1525840708539595762.816387a0cceab2d825a8393a6ca5d5a1_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp.dot index 3c98bc9f9..2702eb22e 100644 --- a/infer/tests/codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/types/struct_pass_by_value.cpp.dot @@ -95,41 +95,41 @@ digraph cfg { "set_f#struct_pass_by_value#449985082730240817.3244dc0de9a72d4ec2d03e236d94d06e_3" -> "set_f#struct_pass_by_value#449985082730240817.3244dc0de9a72d4ec2d03e236d94d06e_2" ; -"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_1" [label="1: Start struct_pass_by_value::temp_div0\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$4:struct_pass_by_value::X 0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X \n " color=yellow style=filled] +"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_1" [label="1: Start struct_pass_by_value::temp_div0\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$1:struct_pass_by_value::X 0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X \n " color=yellow style=filled] "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_1" -> "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_3" ; "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_2" [label="2: Exit struct_pass_by_value::temp_div0 \n " color=yellow style=filled] -"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X); [line 35, column 36]\n n$5=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*,0:int) [line 35, column 36]\n " shape="box"] +"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X); [line 35, column 36]\n n$2=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*,0:int) [line 35, column 36]\n " shape="box"] "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_3" -> "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_4" ; -"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_4" [label="4: Return Stmt \n n$6=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmp__temp_construct_n$4:struct_pass_by_value::X*,&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X&) [line 35, column 36]\n n$7=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$4:struct_pass_by_value::X) [line 35, column 30]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X [line 35, column 40]\n n$2=_fun_struct_pass_by_value::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*) injected [line 35, column 40]\n " shape="box"] +"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_4" [label="4: Destruction(temporaries cleanup) \n n$3=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmp__temp_construct_n$1:struct_pass_by_value::X*,&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X&) [line 35, column 36]\n n$4=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$1:struct_pass_by_value::X) [line 35, column 30]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X [line 35, column 40]\n n$6=_fun_struct_pass_by_value::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*) injected [line 35, column 40]\n " shape="box"] "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_4" -> "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_5" ; -"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_5" [label="5: Return Stmt \n *&return:int=(1 / n$7) [line 35, column 19]\n " shape="box"] +"temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_5" [label="5: Return Stmt \n *&return:int=(1 / n$4) [line 35, column 19]\n " shape="box"] "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_5" -> "temp_div0#struct_pass_by_value#12428807554484697371.c8fca64e841f1b138c802c96104d913c_2" ; -"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_1" [label="1: Start struct_pass_by_value::temp_div1\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$4:struct_pass_by_value::X 0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X \n " color=yellow style=filled] +"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_1" [label="1: Start struct_pass_by_value::temp_div1\nFormals: \nLocals: 0$?%__sil_tmp__temp_construct_n$1:struct_pass_by_value::X 0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X \n " color=yellow style=filled] "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_1" -> "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_3" ; "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_2" [label="2: Exit struct_pass_by_value::temp_div1 \n " color=yellow style=filled] -"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X); [line 37, column 36]\n n$5=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*,1:int) [line 37, column 36]\n " shape="box"] +"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_3" [label="3: DeclStmt \n VARIABLE_DECLARED(0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X); [line 37, column 36]\n n$2=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*,1:int) [line 37, column 36]\n " shape="box"] "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_3" -> "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_4" ; -"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_4" [label="4: Return Stmt \n n$6=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmp__temp_construct_n$4:struct_pass_by_value::X*,&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X&) [line 37, column 36]\n n$7=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$4:struct_pass_by_value::X) [line 37, column 30]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X [line 37, column 40]\n n$2=_fun_struct_pass_by_value::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*) injected [line 37, column 40]\n " shape="box"] +"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_4" [label="4: Destruction(temporaries cleanup) \n n$3=_fun_struct_pass_by_value::X::X(&0$?%__sil_tmp__temp_construct_n$1:struct_pass_by_value::X*,&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X&) [line 37, column 36]\n n$4=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$1:struct_pass_by_value::X) [line 37, column 30]\n _=*&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X [line 37, column 40]\n n$6=_fun_struct_pass_by_value::X::~X(&0$?%__sil_tmpSIL_materialize_temp__n$0:struct_pass_by_value::X*) injected [line 37, column 40]\n " shape="box"] "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_4" -> "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_5" ; -"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_5" [label="5: Return Stmt \n *&return:int=(1 / n$7) [line 37, column 19]\n " shape="box"] +"temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_5" [label="5: Return Stmt \n *&return:int=(1 / n$4) [line 37, column 19]\n " shape="box"] "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_5" -> "temp_div1#struct_pass_by_value#13173334156757910444.11618e43948d09c7324724af84bc0d5b_2" ; diff --git a/infer/tests/codetoanalyze/objc/autoreleasepool/cost-issues.exp b/infer/tests/codetoanalyze/objc/autoreleasepool/cost-issues.exp index 51b07e915..a60d54d66 100644 --- a/infer/tests/codetoanalyze/objc/autoreleasepool/cost-issues.exp +++ b/infer/tests/codetoanalyze/objc/autoreleasepool/cost-issues.exp @@ -24,7 +24,7 @@ codetoanalyze/objc/autoreleasepool/arc_caller.m, ArcCaller.callGiveMeObject_line codetoanalyze/objc/autoreleasepool/arc_caller.m, ArcCaller.callMutableCopyObject_zero:x:, 0, OnUIThread:false, [] codetoanalyze/objc/autoreleasepool/arc_caller.m, ArcCaller.callNewObject_zero:, 0, OnUIThread:false, [] codetoanalyze/objc/autoreleasepool/arc_caller.m, ArcCaller.dealloc, 0, OnUIThread:false, [] -codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.callMyEnumerator_linear_FP:, (x->elements.length.ub + 1) × (x->elements.length.ub + 2), OnUIThread:false, [{x->elements.length.ub + 2},Loop,{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop] +codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.callMyEnumerator_linear_FP:, (x->elements.length.ub + 1) × (x->elements.length.ub + 1) + (x->elements.length.ub + 1), OnUIThread:false, [{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop,{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop,{x->elements.length.ub + 1},Loop] codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.callMyEnumerator_nextObject_linear:, (x->elements.length.ub + 1), OnUIThread:false, [{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop] codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.dealloc, 0, OnUIThread:false, [] codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.makeMyEnumerator_zero:, 0, OnUIThread:false, [] diff --git a/infer/tests/codetoanalyze/objc/autoreleasepool/issues.exp b/infer/tests/codetoanalyze/objc/autoreleasepool/issues.exp index 46aeba8eb..75a04ebb0 100644 --- a/infer/tests/codetoanalyze/objc/autoreleasepool/issues.exp +++ b/infer/tests/codetoanalyze/objc/autoreleasepool/issues.exp @@ -1,7 +1,7 @@ codetoanalyze/objc/autoreleasepool/arc_block.m, ArcBlock.callIndexOfObjectPassingTest_linear:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{x->elements.length.ub},Modeled call to indexOfObjectPassingTest:,autorelease,Call to NoArcCallee.giveMeObject,Modeled call to NSObject.autorelease] codetoanalyze/objc/autoreleasepool/arc_block.m, ArcBlock.callIndexOfObjectPassingTest_param_linear:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{x->elements.length.ub},Modeled call to indexOfObjectPassingTest:,autorelease,Call to NoArcCallee.giveMeObject,Modeled call to NSObject.autorelease] codetoanalyze/objc/autoreleasepool/arc_caller.m, ArcCaller.callGiveMeObject_linear:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{n},Loop,autorelease,Call to NoArcCallee.giveMeObject,Modeled call to NSObject.autorelease] -codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.callMyEnumerator_linear_FP:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{x->elements.length.ub + 2},Loop,{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop] +codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.callMyEnumerator_linear_FP:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop,{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop,{x->elements.length.ub + 1},Loop] codetoanalyze/objc/autoreleasepool/arc_enumerator.m, ArcEnumerator.callMyEnumerator_nextObject_linear:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{x->elements.length.ub + 1},Call to MyEnumerator.nextObject,Loop] codetoanalyze/objc/autoreleasepool/basic.m, Basic.autoreleased_in_loop_linear:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{n},Loop,autorelease,Call to Basic.call_autorelease_constant,Modeled call to NSObject.autorelease] codetoanalyze/objc/autoreleasepool/basic.m, Basic.autoreleased_in_loop_sequential_linear:, 0, EXPENSIVE_AUTORELEASEPOOL_SIZE, no_bucket, ERROR, [{n},Loop,autorelease,Call to Basic.call_autorelease_constant,Modeled call to NSObject.autorelease] diff --git a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m.dot b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m.dot index 02d7e66ac..32ef93078 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/retain_cycle.m.dot @@ -56,7 +56,7 @@ digraph cfg { "capture#A#instance.d411336575e4bf632a1828f5f5979726_2" [label="2: Exit A.capture \n " color=yellow style=filled] -"capture#A#instance.d411336575e4bf632a1828f5f5979726_3" [label="3: Message Call: sHandler: \n n$3=*&self:A* [line 45, column 4]\n n$4=*n$3._b:B* [line 45, column 4]\n n$0=*&self:A* [line 45, column 16]\n n$5=_fun_B.sHandler:[objc_blockA.capture_1](n$0:A*,n$4:B*,(_fun_objc_blockA.capture_1,([by ref]n$0 &self:A*)):_fn_(*)) virtual [line 45, column 3]\n " shape="box"] +"capture#A#instance.d411336575e4bf632a1828f5f5979726_3" [label="3: Compound statement \n n$3=*&self:A* [line 45, column 4]\n n$4=*n$3._b:B* [line 45, column 4]\n n$0=*&self:A* [line 45, column 16]\n n$5=_fun_B.sHandler:[objc_blockA.capture_1](n$0:A*,n$4:B*,(_fun_objc_blockA.capture_1,([by ref]n$0 &self:A*)):_fn_(*)) virtual [line 45, column 3]\n " shape="box"] "capture#A#instance.d411336575e4bf632a1828f5f5979726_3" -> "capture#A#instance.d411336575e4bf632a1828f5f5979726_2" ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/specialized_method_with_block_params.m.dot b/infer/tests/codetoanalyze/objc/frontend/block/specialized_method_with_block_params.m.dot index 862298a1b..500b055b1 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/specialized_method_with_block_params.m.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/specialized_method_with_block_params.m.dot @@ -92,7 +92,7 @@ digraph cfg { "bar2#A#instance.413fa5106d6a23f2bf18df99659efb82_4" -> "bar2#A#instance.413fa5106d6a23f2bf18df99659efb82_2" ; -"bar2#A#instance.413fa5106d6a23f2bf18df99659efb82_5" [label="5: Call _fun_foo \n n$14=*&self:A* [line 40, column 7]\n n$16=*&self:A* [line 43, column 7]\n n$18=*&self:A* [line 46, column 7]\n n$19=_fun_foo[objc_blockA.bar2_3^objc_blockA.bar2_4](n$14:A*,(_fun_objc_blockA.bar2_4,([by ref]n$16 &self:A*)):_fn_(*),(_fun_objc_blockA.bar2_3,([by ref]n$14 &self:A*)):_fn_(*),n$18:A*) [line 39, column 3]\n " shape="box"] +"bar2#A#instance.413fa5106d6a23f2bf18df99659efb82_5" [label="5: Compound statement \n n$14=*&self:A* [line 40, column 7]\n n$16=*&self:A* [line 43, column 7]\n n$18=*&self:A* [line 46, column 7]\n n$19=_fun_foo[objc_blockA.bar2_3^objc_blockA.bar2_4](n$14:A*,(_fun_objc_blockA.bar2_4,([by ref]n$16 &self:A*)):_fn_(*),(_fun_objc_blockA.bar2_3,([by ref]n$14 &self:A*)):_fn_(*),n$18:A*) [line 39, column 3]\n " shape="box"] "bar2#A#instance.413fa5106d6a23f2bf18df99659efb82_5" -> "bar2#A#instance.413fa5106d6a23f2bf18df99659efb82_3" ; @@ -115,7 +115,7 @@ digraph cfg { "bar:#A(class A)#instance.3e4a860660eb436d473f8ceeb9c1a72b_5" -> "bar:#A(class A)#instance.3e4a860660eb436d473f8ceeb9c1a72b_3" ; -"bar:#A(class A)#instance.3e4a860660eb436d473f8ceeb9c1a72b_6" [label="6: Call _fun_foo \n n$3=*&self:A* [line 27, column 7]\n n$4=*&x:int [line 27, column 7]\n n$7=*&self:A* [line 30, column 7]\n n$10=*&a:A* [line 33, column 7]\n n$11=_fun_foo[objc_blockA.bar:_1^objc_blockA.bar:_2](n$4:int,n$3:A*,(_fun_objc_blockA.bar:_2,([by ref]n$7 &self:A*)):_fn_(*),(_fun_objc_blockA.bar:_1,([by ref]n$3 &self:A*),([by ref]n$4 &x:int)):_fn_(*),n$10:A*) [line 26, column 3]\n " shape="box"] +"bar:#A(class A)#instance.3e4a860660eb436d473f8ceeb9c1a72b_6" [label="6: Compound statement \n n$3=*&self:A* [line 27, column 7]\n n$4=*&x:int [line 27, column 7]\n n$7=*&self:A* [line 30, column 7]\n n$10=*&a:A* [line 33, column 7]\n n$11=_fun_foo[objc_blockA.bar:_1^objc_blockA.bar:_2](n$4:int,n$3:A*,(_fun_objc_blockA.bar:_2,([by ref]n$7 &self:A*)):_fn_(*),(_fun_objc_blockA.bar:_1,([by ref]n$3 &self:A*),([by ref]n$4 &x:int)):_fn_(*),n$10:A*) [line 26, column 3]\n " shape="box"] "bar:#A(class A)#instance.3e4a860660eb436d473f8ceeb9c1a72b_6" -> "bar:#A(class A)#instance.3e4a860660eb436d473f8ceeb9c1a72b_5" ; diff --git a/infer/tests/codetoanalyze/objc/frontend/block/static.m.dot b/infer/tests/codetoanalyze/objc/frontend/block/static.m.dot index bff02c68e..e7aeb2edb 100644 --- a/infer/tests/codetoanalyze/objc/frontend/block/static.m.dot +++ b/infer/tests/codetoanalyze/objc/frontend/block/static.m.dot @@ -70,7 +70,7 @@ digraph cfg { "test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_4" -> "test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_2" ; -"test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_5" [label="5: Call (_fun_objc_blockA.test_1) \n n$3=(_fun_objc_blockA.test_1)() [line 18, column 3]\n " shape="box"] +"test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_5" [label="5: Compound statement \n n$3=(_fun_objc_blockA.test_1)() [line 18, column 3]\n " shape="box"] "test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_5" -> "test#A#class.c69ae9e6be36a2eeb5dcbaa1187c354d_3" ; @@ -123,7 +123,7 @@ digraph cfg { "test_leak#A#class.8240788aa53244827857be0e92d27671_2" [label="2: Exit A.test_leak \n " color=yellow style=filled] -"test_leak#A#class.8240788aa53244827857be0e92d27671_3" [label="3: Call (_fun_objc_blockA.test_leak_2) \n n$6=(_fun_objc_blockA.test_leak_2)() [line 28, column 3]\n " shape="box"] +"test_leak#A#class.8240788aa53244827857be0e92d27671_3" [label="3: Compound statement \n n$6=(_fun_objc_blockA.test_leak_2)() [line 28, column 3]\n " shape="box"] "test_leak#A#class.8240788aa53244827857be0e92d27671_3" -> "test_leak#A#class.8240788aa53244827857be0e92d27671_2" ; diff --git a/infer/tests/codetoanalyze/objc/frontend/types/attributes.m.dot b/infer/tests/codetoanalyze/objc/frontend/types/attributes.m.dot index d46a7b6f2..d0ec9b236 100644 --- a/infer/tests/codetoanalyze/objc/frontend/types/attributes.m.dot +++ b/infer/tests/codetoanalyze/objc/frontend/types/attributes.m.dot @@ -31,7 +31,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_8" -> "main.fad58de7366495db4650cfefac2fcd61_7" ; -"main.fad58de7366495db4650cfefac2fcd61_9" [label="9: BinaryOperatorStmt: Assign \n n$4=_fun___objc_alloc_no_fail(sizeof(t=A):unsigned long) [line 27, column 16]\n *&aStrongRef:A*=n$4 [line 27, column 3]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_9" [label="9: Compound statement \n n$4=_fun___objc_alloc_no_fail(sizeof(t=A):unsigned long) [line 27, column 16]\n *&aStrongRef:A*=n$4 [line 27, column 3]\n n$5=*&aStrongRef:A* [line 27, column 3]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_9" -> "main.fad58de7366495db4650cfefac2fcd61_8" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/Blocks_as_parameters.m.dot b/infer/tests/codetoanalyze/objc/shared/block/Blocks_as_parameters.m.dot index 06ab38d8e..b62aa333f 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/Blocks_as_parameters.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/Blocks_as_parameters.m.dot @@ -37,7 +37,7 @@ digraph cfg { "f#B#instance.f1371ff5e7f410d3df6a2e71ff0a814e_4" -> "f#B#instance.f1371ff5e7f410d3df6a2e71ff0a814e_2" ; -"f#B#instance.f1371ff5e7f410d3df6a2e71ff0a814e_5" [label="5: Message Call: foo:and: \n n$4=*&self:B* [line 23, column 10]\n n$5=*n$4.h:int [line 23, column 10]\n n$2=*&self:B* const [line 24, column 11]\n n$6=_fun_B.foo:and:[objc_blockB.f_1](n$5:int,n$2:B* const ,(_fun_objc_blockB.f_1,([by ref]n$2 &self:B* const )):_fn_(*)) [line 23, column 3]\n " shape="box"] +"f#B#instance.f1371ff5e7f410d3df6a2e71ff0a814e_5" [label="5: Compound statement \n n$4=*&self:B* [line 23, column 10]\n n$5=*n$4.h:int [line 23, column 10]\n n$2=*&self:B* const [line 24, column 11]\n n$6=_fun_B.foo:and:[objc_blockB.f_1](n$5:int,n$2:B* const ,(_fun_objc_blockB.f_1,([by ref]n$2 &self:B* const )):_fn_(*)) [line 23, column 3]\n " shape="box"] "f#B#instance.f1371ff5e7f410d3df6a2e71ff0a814e_5" -> "f#B#instance.f1371ff5e7f410d3df6a2e71ff0a814e_3" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/block.m.dot b/infer/tests/codetoanalyze/objc/shared/block/block.m.dot index b1aad7354..237993663 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/block.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/block.m.dot @@ -46,7 +46,7 @@ digraph cfg { "main1.38f534a9576db7ec6ebcbca8c111f942_8" -> "main1.38f534a9576db7ec6ebcbca8c111f942_7" ; -"main1.38f534a9576db7ec6ebcbca8c111f942_9" [label="9: BinaryOperatorStmt: Assign \n n$9=*&x:int [line 16, column 14]\n *&addblock:_fn_(*)=(_fun_objc_blockmain1_2,([by ref]n$9 &x:int)) [line 16, column 3]\n " shape="box"] +"main1.38f534a9576db7ec6ebcbca8c111f942_9" [label="9: Compound statement \n n$9=*&x:int [line 16, column 14]\n *&addblock:_fn_(*)=(_fun_objc_blockmain1_2,([by ref]n$9 &x:int)) [line 16, column 3]\n n$22=*&addblock:_fn_(*) [line 16, column 3]\n " shape="box"] "main1.38f534a9576db7ec6ebcbca8c111f942_9" -> "main1.38f534a9576db7ec6ebcbca8c111f942_8" ; @@ -92,7 +92,7 @@ digraph cfg { "objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_5" -> "objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_3" ; -"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_6" [label="6: BinaryOperatorStmt: Assign \n n$15=*&x:int [line 21, column 17]\n n$16=*&bla:int [line 21, column 17]\n *&addblock2:_fn_(*)=(_fun_objc_blockobjc_blockmain1_2_3,([by ref]n$15 &x:int),([by ref]n$16 &bla:int)) [line 21, column 5]\n " shape="box"] +"objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_6" [label="6: Compound statement \n n$15=*&x:int [line 21, column 17]\n n$16=*&bla:int [line 21, column 17]\n *&addblock2:_fn_(*)=(_fun_objc_blockobjc_blockmain1_2_3,([by ref]n$15 &x:int),([by ref]n$16 &bla:int)) [line 21, column 5]\n n$21=*&addblock2:_fn_(*) [line 21, column 5]\n " shape="box"] "objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_6" -> "objc_blockmain1_2.0d332204bbe33f46a9283d2c0df5700a_5" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot b/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot index 9c3a3c70d..46fd836c5 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/block_no_args.m.dot @@ -74,7 +74,7 @@ digraph cfg { "m#Block_no_args#instance.385f8c4982ef6acc28cdc868a8cd4272_13" -> "m#Block_no_args#instance.385f8c4982ef6acc28cdc868a8cd4272_12" ; -"m#Block_no_args#instance.385f8c4982ef6acc28cdc868a8cd4272_14" [label="14: BinaryOperatorStmt: Assign \n n$7=*&z:int [line 23, column 7]\n *&b:_fn_(*)=(_fun_objc_blockBlock_no_args.m_1,([by ref]n$7 &z:int)) [line 23, column 3]\n " shape="box"] +"m#Block_no_args#instance.385f8c4982ef6acc28cdc868a8cd4272_14" [label="14: Compound statement \n n$7=*&z:int [line 23, column 7]\n *&b:_fn_(*)=(_fun_objc_blockBlock_no_args.m_1,([by ref]n$7 &z:int)) [line 23, column 3]\n n$9=*&b:_fn_(*) [line 23, column 3]\n " shape="box"] "m#Block_no_args#instance.385f8c4982ef6acc28cdc868a8cd4272_14" -> "m#Block_no_args#instance.385f8c4982ef6acc28cdc868a8cd4272_13" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/block_release.m.dot b/infer/tests/codetoanalyze/objc/shared/block/block_release.m.dot index b84f6299b..2c7b93c1d 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/block_release.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/block_release.m.dot @@ -64,15 +64,15 @@ digraph cfg { "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_9" -> "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_6" ; "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_9" -> "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_7" ; -"blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_10" [label="10: BinaryOperatorStmt: Assign \n n$9=*&newImage:CGImage* [line 23, column 7]\n *&b:_fn_(*)=(_fun_objc_blockMy_manager.blockReleaseNoLeak_1,([by ref]n$9 &newImage:CGImage*)) [line 23, column 3]\n " shape="box"] +"blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_10" [label="10: Compound statement \n n$9=*&newImage:CGImage* [line 23, column 7]\n *&b:_fn_(*)=(_fun_objc_blockMy_manager.blockReleaseNoLeak_1,([by ref]n$9 &newImage:CGImage*)) [line 23, column 3]\n n$15=*&b:_fn_(*) [line 23, column 3]\n " shape="box"] "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_10" -> "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_9" ; -"blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_11" [label="11: DeclStmt \n VARIABLE_DECLARED(newImage:CGImage*); [line 22, column 3]\n n$15=*&context:CGContext* [line 22, column 52]\n n$16=_fun_CGBitmapContextCreateImage(n$15:CGContext*) [line 22, column 25]\n *&newImage:CGImage*=n$16 [line 22, column 3]\n " shape="box"] +"blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_11" [label="11: DeclStmt \n VARIABLE_DECLARED(newImage:CGImage*); [line 22, column 3]\n n$16=*&context:CGContext* [line 22, column 52]\n n$17=_fun_CGBitmapContextCreateImage(n$16:CGContext*) [line 22, column 25]\n *&newImage:CGImage*=n$17 [line 22, column 3]\n " shape="box"] "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_11" -> "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_10" ; -"blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_12" [label="12: DeclStmt \n VARIABLE_DECLARED(context:CGContext*); [line 21, column 3]\n n$17=_fun_CGBitmapContextCreate(null:void*,(unsigned long)0:unsigned long,(unsigned long)0:unsigned long,(unsigned long)8:unsigned long,(unsigned long)0:unsigned long,null:CGColorSpace*,(unsigned int)0:unsigned int) [line 21, column 26]\n *&context:CGContext*=n$17 [line 21, column 3]\n " shape="box"] +"blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_12" [label="12: DeclStmt \n VARIABLE_DECLARED(context:CGContext*); [line 21, column 3]\n n$18=_fun_CGBitmapContextCreate(null:void*,(unsigned long)0:unsigned long,(unsigned long)0:unsigned long,(unsigned long)8:unsigned long,(unsigned long)0:unsigned long,null:CGColorSpace*,(unsigned int)0:unsigned int) [line 21, column 26]\n *&context:CGContext*=n$18 [line 21, column 3]\n " shape="box"] "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_12" -> "blockReleaseNoLeak#My_manager#instance.0c48f80f024250b18a529440f1313af6_11" ; diff --git a/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot b/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot index 1c6daecfb..6301fcec4 100644 --- a/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot +++ b/infer/tests/codetoanalyze/objc/shared/block/dispatch.m.dot @@ -118,7 +118,7 @@ digraph cfg { "block_attribute#DispatchA#class.df997e345dbf19ec3438c667c942e14a_4" -> "block_attribute#DispatchA#class.df997e345dbf19ec3438c667c942e14a_2" ; -"block_attribute#DispatchA#class.df997e345dbf19ec3438c667c942e14a_5" [label="5: Call _fun__dispatch_once \n n$7=*&a:DispatchA* [line 37, column 24]\n n$9=_fun__dispatch_once(&#GB$DispatchA.block_attribute.once:long*,(_fun_objc_blockDispatchA.block_attribute_2,([by ref]n$7 &a:DispatchA*)):_fn_(*)) [line 37, column 3]\n " shape="box"] +"block_attribute#DispatchA#class.df997e345dbf19ec3438c667c942e14a_5" [label="5: Compound statement \n n$7=*&a:DispatchA* [line 37, column 24]\n n$9=_fun__dispatch_once(&#GB$DispatchA.block_attribute.once:long*,(_fun_objc_blockDispatchA.block_attribute_2,([by ref]n$7 &a:DispatchA*)):_fn_(*)) [line 37, column 3]\n " shape="box"] "block_attribute#DispatchA#class.df997e345dbf19ec3438c667c942e14a_5" -> "block_attribute#DispatchA#class.df997e345dbf19ec3438c667c942e14a_3" ; @@ -210,7 +210,7 @@ digraph cfg { "sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_4" -> "sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_2" ; -"sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_5" [label="5: Call _fun__dispatch_once \n n$4=_fun__dispatch_once(&#GB$DispatchA.sharedInstance.once:long*,(_fun_objc_blockDispatchA.sharedInstance_1):_fn_(*)) [line 28, column 3]\n " shape="box"] +"sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_5" [label="5: Compound statement \n n$4=_fun__dispatch_once(&#GB$DispatchA.sharedInstance.once:long*,(_fun_objc_blockDispatchA.sharedInstance_1):_fn_(*)) [line 28, column 3]\n " shape="box"] "sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_5" -> "sharedInstance#DispatchA#class.8992c6086d1ce5c225093940f62386ac_3" ;