From c3cadace865b23fe654b8b317fe4175daf3fd321 Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Fri, 8 Mar 2019 10:49:51 -0800 Subject: [PATCH] [SIL][3/3] add CallFlag for synthetised destructor calls Summary: This will be used in the future to determine what to do with destructors in pulse. Reviewed By: mbouaziz Differential Revision: D14324759 fbshipit-source-id: bc3c34471 --- infer/src/IR/CallFlags.ml | 4 ++ infer/src/IR/CallFlags.mli | 2 + infer/src/clang/cTrans.ml | 30 ++++++---- .../clang_translation/src/main.cpp.dot | 6 +- .../src/main_default_root.cpp.dot | 6 +- .../src/main_default_symlink.cpp.dot | 6 +- .../src/main_symlink.cpp.dot | 6 +- .../frontend/destructors/break_scope.cpp.dot | 56 +++++++++---------- .../destructors/call_on_delete.cpp.dot | 2 +- .../destructors/continue_scope.cpp.dot | 46 +++++++-------- .../destructors/destructor_bases.cpp.dot | 22 ++++---- .../cpp/frontend/destructors/scope.cpp.dot | 38 ++++++------- .../frontend/destructors/simple_decl.cpp.dot | 4 +- .../frontend/initialization/init_list.cpp.dot | 4 +- .../conditional/binary_conditional.cpp.dot | 6 +- .../constructors/constructor_init.cpp.dot | 12 ++-- .../copy_move_constructor.cpp.dot | 14 ++--- .../shared/constructors/temp_object.cpp.dot | 2 +- .../cpp/shared/lambda/lambda1.cpp.dot | 20 +++---- .../methods/conversion_operator.cpp.dot | 12 ++-- .../cpp/shared/methods/return_struct.cpp.dot | 4 +- .../shared/methods/virtual_methods.cpp.dot | 12 ++-- .../shared/reference/reference_field.cpp.dot | 24 ++++---- .../shared/types/inheritance_casts.cpp.dot | 4 +- .../cpp/shared/types/return_struct.cpp.dot | 6 +- .../shared/types/struct_pass_by_value.cpp.dot | 10 ++-- 26 files changed, 187 insertions(+), 171 deletions(-) diff --git a/infer/src/IR/CallFlags.ml b/infer/src/IR/CallFlags.ml index da2cc1b57..68593f2ea 100644 --- a/infer/src/IR/CallFlags.ml +++ b/infer/src/IR/CallFlags.ml @@ -14,6 +14,7 @@ module F = Format (** Flags for a procedure call *) type t = { cf_assign_last_arg: bool + ; cf_injected_destructor: bool ; cf_interface: bool ; cf_is_objc_block: bool ; cf_noreturn: bool @@ -23,12 +24,14 @@ type t = let pp f ({ cf_assign_last_arg + ; cf_injected_destructor ; cf_interface ; cf_is_objc_block ; cf_noreturn ; cf_with_block_parameters ; cf_virtual }[@warning "+9"]) = if cf_assign_last_arg then F.pp_print_string f " assign_last" ; + if cf_injected_destructor then F.pp_print_string f " injected" ; if cf_interface then F.pp_print_string f " interface" ; if cf_is_objc_block then F.pp_print_string f " objc_block" ; if cf_noreturn then F.pp_print_string f " noreturn" ; @@ -39,6 +42,7 @@ let pp f let default = { cf_assign_last_arg= false + ; cf_injected_destructor= false ; cf_interface= false ; cf_is_objc_block= false ; cf_noreturn= false diff --git a/infer/src/IR/CallFlags.mli b/infer/src/IR/CallFlags.mli index c86f23b92..c82a8958c 100644 --- a/infer/src/IR/CallFlags.mli +++ b/infer/src/IR/CallFlags.mli @@ -14,6 +14,8 @@ module F = Format (** Flags for a procedure call *) type t = { cf_assign_last_arg: bool + ; cf_injected_destructor: bool + (** true if this is an implicit C++ destructor call injected by the clang frontend *) ; cf_interface: bool ; cf_is_objc_block: bool ; cf_noreturn: bool diff --git a/infer/src/clang/cTrans.ml b/infer/src/clang/cTrans.ml index f5753118d..755378e85 100644 --- a/infer/src/clang/cTrans.ml +++ b/infer/src/clang/cTrans.ml @@ -1094,7 +1094,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s and cxx_method_construct_call_trans trans_state_pri result_trans_callee params_stmt si - function_type is_cpp_call_virtual extra_res_trans ~is_inherited_ctor = + function_type ~is_cpp_call_virtual ~is_injected_destructor extra_res_trans ~is_inherited_ctor + = let context = trans_state_pri.context in let sil_loc = CLocation.location_of_stmt_info context.translation_unit_context.source_file si @@ -1118,7 +1119,10 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s builtin | None -> let sil_method = Exp.Const (Const.Cfun callee_pname) in - let call_flags = {CallFlags.default with CallFlags.cf_virtual= is_cpp_call_virtual} in + let call_flags = + { CallFlags.default with + cf_virtual= is_cpp_call_virtual; cf_injected_destructor= is_injected_destructor } + in let res_trans_call = create_call_instr trans_state_pri function_type sil_method actual_params sil_loc call_flags ~is_objc_method:false ~is_inherited_ctor @@ -1148,7 +1152,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s let fn_type_no_ref = CType_decl.get_type_from_expr_info expr_info context.CContext.tenv in let function_type = add_reference_if_glvalue fn_type_no_ref expr_info in cxx_method_construct_call_trans trans_state_pri result_trans_callee params_stmt si - function_type is_cpp_call_virtual None ~is_inherited_ctor:false + function_type ~is_injected_destructor:false ~is_cpp_call_virtual None + ~is_inherited_ctor:false and cxxConstructExpr_trans trans_state si params_stmt ei cxx_constr_info ~is_inherited_ctor = @@ -1179,12 +1184,14 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s in let res_trans = cxx_method_construct_call_trans trans_state_pri res_trans_callee params_stmt si - (Typ.mk Tvoid) false (Some tmp_res_trans) ~is_inherited_ctor + (Typ.mk Tvoid) ~is_injected_destructor:false ~is_cpp_call_virtual:false + (Some tmp_res_trans) ~is_inherited_ctor in {res_trans with return= tmp_res_trans.return} - and cxx_destructor_call_trans trans_state si this_res_trans class_type_ptr ~is_inner_destructor = + and cxx_destructor_call_trans trans_state si this_res_trans class_type_ptr + ~is_injected_destructor ~is_inner_destructor = (* cxx_method_construct_call_trans claims a priority with the same `si`. A new pointer is generated to avoid premature node creation *) let si' = {si with Clang_ast_t.si_pointer= CAst_utils.get_fresh_pointer ()} in @@ -1200,7 +1207,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s let is_cpp_call_virtual = res_trans_callee.is_cpp_call_virtual in Some (cxx_method_construct_call_trans trans_state_pri res_trans_callee [] si' (Typ.mk Tvoid) - is_cpp_call_virtual None ~is_inherited_ctor:false) + ~is_injected_destructor ~is_cpp_call_virtual None ~is_inherited_ctor:false) | _ -> None @@ -1330,7 +1337,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s List.rev_filter_map bases ~f:(fun base -> let this_res_trans_destruct = mk_trans_result (obj_sil, this_qual_type) empty_control in cxx_destructor_call_trans trans_state stmt_info this_res_trans_destruct base - ~is_inner_destructor:true ) + ~is_injected_destructor:true ~is_inner_destructor:true ) and add_this_instrs_if_result_non_empty res_trans this_res_trans = @@ -1407,7 +1414,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s let field_typ = CType_decl.qual_type_to_sil_type context.tenv qual_type in let this_res_trans_destruct = mk_trans_result (field_exp, field_typ) empty_control in cxx_destructor_call_trans trans_state_pri stmt_info_loc this_res_trans_destruct - qual_type.Clang_ast_t.qt_type_ptr ~is_inner_destructor:false + qual_type.Clang_ast_t.qt_type_ptr ~is_injected_destructor:true + ~is_inner_destructor:false | _ -> assert false ) in @@ -1455,7 +1463,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s let typ = CType_decl.qual_type_to_sil_type context.CContext.tenv qual_type in let this_res_trans_destruct = mk_trans_result (exp, typ) empty_control in cxx_destructor_call_trans trans_state_pri stmt_info_loc this_res_trans_destruct - qual_type.Clang_ast_t.qt_type_ptr ~is_inner_destructor:false + qual_type.Clang_ast_t.qt_type_ptr ~is_injected_destructor:true + ~is_inner_destructor:false | _ -> assert false) vars_to_destroy @@ -2921,7 +2930,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s let this_res_trans_destruct = mk_trans_result result_trans_param.return empty_control in let destruct_res_trans = cxx_destructor_call_trans trans_state_pri destruct_stmt_info this_res_trans_destruct - deleted_type.Clang_ast_t.qt_type_ptr ~is_inner_destructor:false + deleted_type.Clang_ast_t.qt_type_ptr ~is_injected_destructor:false + ~is_inner_destructor:false in result_trans_param :: (Option.to_list destruct_res_trans @ [call_res_trans]) (* --- END OF DEAD CODE --- *) diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot index 08ab4f295..051a51319 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main.cpp.dot @@ -120,7 +120,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n NULLIFY(&x); [line 22, column 1]\n NULLIFY(&s); [line 22, column 1]\n " color=yellow style=filled] -"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) injected [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) injected [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; @@ -758,7 +758,7 @@ digraph cfg { "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" [label="2: Exit std::shared_ptr___infer_inner_destructor_~shared_ptr \n " color=yellow style=filled] -"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" -> "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" ; @@ -773,7 +773,7 @@ digraph cfg { "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" [label="2: Exit std::shared_ptr_~shared_ptr \n " color=yellow style=filled] -"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" -> "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" ; diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot index 08ab4f295..051a51319 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_root.cpp.dot @@ -120,7 +120,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n NULLIFY(&x); [line 22, column 1]\n NULLIFY(&s); [line 22, column 1]\n " color=yellow style=filled] -"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) injected [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) injected [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; @@ -758,7 +758,7 @@ digraph cfg { "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" [label="2: Exit std::shared_ptr___infer_inner_destructor_~shared_ptr \n " color=yellow style=filled] -"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" -> "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" ; @@ -773,7 +773,7 @@ digraph cfg { "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" [label="2: Exit std::shared_ptr_~shared_ptr \n " color=yellow style=filled] -"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" -> "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" ; diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot index 08ab4f295..051a51319 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_default_symlink.cpp.dot @@ -120,7 +120,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n NULLIFY(&x); [line 22, column 1]\n NULLIFY(&s); [line 22, column 1]\n " color=yellow style=filled] -"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) injected [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) injected [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; @@ -758,7 +758,7 @@ digraph cfg { "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" [label="2: Exit std::shared_ptr___infer_inner_destructor_~shared_ptr \n " color=yellow style=filled] -"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" -> "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" ; @@ -773,7 +773,7 @@ digraph cfg { "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" [label="2: Exit std::shared_ptr_~shared_ptr \n " color=yellow style=filled] -"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" -> "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" ; diff --git a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot index 08ab4f295..051a51319 100644 --- a/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot +++ b/infer/tests/build_systems/codetoanalyze/clang_translation/src/main_symlink.cpp.dot @@ -120,7 +120,7 @@ digraph cfg { "main.fad58de7366495db4650cfefac2fcd61_2" [label="2: Exit main \n NULLIFY(&x); [line 22, column 1]\n NULLIFY(&s); [line 22, column 1]\n " color=yellow style=filled] -"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] +"main.fad58de7366495db4650cfefac2fcd61_3" [label="3: Destruction \n _=*&s:std::basic_string,std::allocator> [line 22, column 1]\n n$1=_fun_std::basic_string,std::allocator>_~basic_string(&s:std::basic_string,std::allocator>*) injected [line 22, column 1]\n _=*&x:int* [line 22, column 1]\n n$3=_fun_std::shared_ptr_~shared_ptr(&x:int**) injected [line 22, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,s,x); [line 22, column 1]\n APPLY_ABSTRACTION; [line 22, column 1]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; @@ -758,7 +758,7 @@ digraph cfg { "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" [label="2: Exit std::shared_ptr___infer_inner_destructor_~shared_ptr \n " color=yellow style=filled] -"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::std__shared_ptr___infer_inner_destructor_~std__shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_3" -> "__infer_inner_destructor_~shared_ptr#shared_ptr#std#(11841665744792554656).9277443e4e3f26d7cc1cd9ee0f2e3637_2" ; @@ -773,7 +773,7 @@ digraph cfg { "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" [label="2: Exit std::shared_ptr_~shared_ptr \n " color=yellow style=filled] -"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] +"~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" [label="3: Destruction \n n$0=*&this:int** [line 178, column 39]\n _=*n$0:int* [line 178, column 39]\n n$2=_fun_std::shared_ptr___infer_inner_destructor_~shared_ptr(n$0:int**) injected [line 178, column 39]\n NULLIFY(&this); [line 178, column 39]\n EXIT_SCOPE(_,n$0,n$2,this); [line 178, column 39]\n APPLY_ABSTRACTION; [line 178, column 39]\n " shape="box"] "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_3" -> "~shared_ptr#shared_ptr#std#(11841665744792554656).57eab4801b4a7454644bdf188ec5633a_2" ; 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 7bfb4c0aa..0ab262439 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/break_scope.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_2" [label="2: Exit break_scope::test_do_while \n NULLIFY(&x3); [line 89, column 1]\n NULLIFY(&x1); [line 89, column 1]\n NULLIFY(&x4); [line 89, column 1]\n NULLIFY(&x2); [line 89, column 1]\n " color=yellow style=filled] -"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 89, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 89, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 89, column 1]\n APPLY_ABSTRACTION; [line 89, column 1]\n " shape="box"] +"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 89, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 89, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 89, column 1]\n APPLY_ABSTRACTION; [line 89, column 1]\n " shape="box"] "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_3" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_2" ; @@ -23,7 +23,7 @@ digraph cfg { "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_6" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_3" ; -"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_7" [label="7: Destruction \n _=*&x2:break_scope::X [line 88, column 3]\n n$5=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 88, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 88, column 3]\n " shape="box"] +"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_7" [label="7: Destruction \n _=*&x2:break_scope::X [line 88, column 3]\n n$5=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 88, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 88, column 3]\n " shape="box"] "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_7" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_5" ; @@ -40,11 +40,11 @@ digraph cfg { "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_10" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_15" ; -"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_11" [label="11: Destruction \n _=*&x3:break_scope::X [line 85, column 5]\n n$9=_fun_break_scope::X_~X(&x3:break_scope::X*) [line 85, column 5]\n APPLY_ABSTRACTION; [line 85, column 5]\n " shape="box"] +"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_11" [label="11: Destruction \n _=*&x3:break_scope::X [line 85, column 5]\n n$9=_fun_break_scope::X_~X(&x3:break_scope::X*) injected [line 85, column 5]\n APPLY_ABSTRACTION; [line 85, column 5]\n " shape="box"] "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_11" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_8" ; -"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_12" [label="12: Destruction \n _=*&x3:break_scope::X [line 84, column 7]\n n$12=_fun_break_scope::X_~X(&x3:break_scope::X*) [line 84, column 7]\n _=*&x2:break_scope::X [line 84, column 7]\n n$14=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 84, column 7]\n EXIT_SCOPE(_,_,n$12,n$14,x2,x3); [line 84, column 7]\n APPLY_ABSTRACTION; [line 84, column 7]\n " shape="box"] +"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_12" [label="12: Destruction \n _=*&x3:break_scope::X [line 84, column 7]\n n$12=_fun_break_scope::X_~X(&x3:break_scope::X*) injected [line 84, column 7]\n _=*&x2:break_scope::X [line 84, column 7]\n n$14=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 84, column 7]\n EXIT_SCOPE(_,_,n$12,n$14,x2,x3); [line 84, column 7]\n APPLY_ABSTRACTION; [line 84, column 7]\n " shape="box"] "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_12" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_3" ; @@ -52,7 +52,7 @@ digraph cfg { "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_13" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_12" ; -"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_14" [label="14: Destruction \n _=*&x4:break_scope::X [line 87, column 5]\n n$19=_fun_break_scope::X_~X(&x4:break_scope::X*) [line 87, column 5]\n EXIT_SCOPE(_,n$19,x4); [line 87, column 5]\n APPLY_ABSTRACTION; [line 87, column 5]\n " shape="box"] +"test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_14" [label="14: Destruction \n _=*&x4:break_scope::X [line 87, column 5]\n n$19=_fun_break_scope::X_~X(&x4:break_scope::X*) injected [line 87, column 5]\n EXIT_SCOPE(_,n$19,x4); [line 87, column 5]\n APPLY_ABSTRACTION; [line 87, column 5]\n " shape="box"] "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_14" -> "test_do_while#break_scope#1068194121698893969.72aceeae2a95e32b3efdbdc08d127420_8" ; @@ -76,7 +76,7 @@ digraph cfg { "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_2" [label="2: Exit break_scope::test_for \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 64, column 1]\n NULLIFY(&x2); [line 64, column 1]\n NULLIFY(&x1); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_return_n$16); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$19); [line 64, column 1]\n NULLIFY(&it); [line 64, column 1]\n NULLIFY(&vector); [line 64, column 1]\n " color=yellow style=filled] -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_3" [label="3: Destruction \n _=*&x2:break_scope::X [line 64, column 1]\n n$1=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 64, column 1]\n _=*&vector:break_scope::vec [line 64, column 1]\n n$3=_fun_break_scope::vec_~vec(&vector:break_scope::vec*) [line 64, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,vector,x2); [line 64, column 1]\n APPLY_ABSTRACTION; [line 64, column 1]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_3" [label="3: Destruction \n _=*&x2:break_scope::X [line 64, column 1]\n n$1=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 64, column 1]\n _=*&vector:break_scope::vec [line 64, column 1]\n n$3=_fun_break_scope::vec_~vec(&vector:break_scope::vec*) injected [line 64, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,vector,x2); [line 64, column 1]\n APPLY_ABSTRACTION; [line 64, column 1]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_3" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_2" ; @@ -122,11 +122,11 @@ digraph cfg { "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_13" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_11" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_14" [label="14: Destruction \n _=*&x1:break_scope::X [line 61, column 5]\n n$28=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 61, column 5]\n APPLY_ABSTRACTION; [line 61, column 5]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_14" [label="14: Destruction \n _=*&x1:break_scope::X [line 61, column 5]\n n$28=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 61, column 5]\n APPLY_ABSTRACTION; [line 61, column 5]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_14" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_11" ; -"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_15" [label="15: Destruction \n _=*&x1:break_scope::X [line 60, column 7]\n n$31=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 60, column 7]\n EXIT_SCOPE(_,n$31,x1); [line 60, column 7]\n APPLY_ABSTRACTION; [line 60, column 7]\n " shape="box"] +"test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_15" [label="15: Destruction \n _=*&x1:break_scope::X [line 60, column 7]\n n$31=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 60, column 7]\n EXIT_SCOPE(_,n$31,x1); [line 60, column 7]\n APPLY_ABSTRACTION; [line 60, column 7]\n " shape="box"] "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_15" -> "test_for#break_scope#12580813866832058675.4c62e98ea10322d216af5dcd2cfbde37_4" ; @@ -145,7 +145,7 @@ digraph cfg { "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_2" [label="2: Exit break_scope::test_for_range \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 53, column 1]\n NULLIFY(&vector); [line 53, column 1]\n NULLIFY(&__begin1); [line 53, column 1]\n NULLIFY(&__end1); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$42); [line 53, column 1]\n NULLIFY(&x2); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$15); [line 53, column 1]\n NULLIFY(&x1); [line 53, column 1]\n NULLIFY(&x); [line 53, column 1]\n NULLIFY(&__range1); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_return_n$25); [line 53, column 1]\n " color=yellow style=filled] -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 53, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 53, column 1]\n _=*&vector:break_scope::vec [line 53, column 1]\n n$3=_fun_break_scope::vec_~vec(&vector:break_scope::vec*) [line 53, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x1,vector); [line 53, column 1]\n APPLY_ABSTRACTION; [line 53, column 1]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 53, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 53, column 1]\n _=*&vector:break_scope::vec [line 53, column 1]\n n$3=_fun_break_scope::vec_~vec(&vector:break_scope::vec*) injected [line 53, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x1,vector); [line 53, column 1]\n APPLY_ABSTRACTION; [line 53, column 1]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_3" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_2" ; @@ -190,11 +190,11 @@ digraph cfg { "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_13" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" [label="14: Destruction \n _=*&x2:break_scope::X [line 51, column 5]\n n$33=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 51, column 5]\n APPLY_ABSTRACTION; [line 51, column 5]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" [label="14: Destruction \n _=*&x2:break_scope::X [line 51, column 5]\n n$33=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 51, column 5]\n APPLY_ABSTRACTION; [line 51, column 5]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_14" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_11" ; -"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" [label="15: Destruction \n _=*&x2:break_scope::X [line 50, column 7]\n n$36=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 50, column 7]\n EXIT_SCOPE(_,n$36,x2); [line 50, column 7]\n APPLY_ABSTRACTION; [line 50, column 7]\n " shape="box"] +"test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" [label="15: Destruction \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 EXIT_SCOPE(_,n$36,x2); [line 50, column 7]\n APPLY_ABSTRACTION; [line 50, column 7]\n " shape="box"] "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_15" -> "test_for_range#break_scope#2115859683356214080.ad34c277f8d086eb0a22c75fc80fb235_3" ; @@ -226,7 +226,7 @@ digraph cfg { "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_2" [label="2: Exit break_scope::test_switch \n NULLIFY(&x4); [line 128, column 1]\n NULLIFY(&x5); [line 128, column 1]\n NULLIFY(&x1); [line 128, column 1]\n NULLIFY(&x3); [line 128, column 1]\n NULLIFY(&x2); [line 128, column 1]\n " color=yellow style=filled] -"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_3" [label="3: Destruction \n _=*&x5:break_scope::X [line 128, column 1]\n n$1=_fun_break_scope::X_~X(&x5:break_scope::X*) [line 128, column 1]\n _=*&x1:break_scope::X [line 128, column 1]\n n$3=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 128, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x1,x5); [line 128, column 1]\n APPLY_ABSTRACTION; [line 128, column 1]\n " shape="box"] +"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_3" [label="3: Destruction \n _=*&x5:break_scope::X [line 128, column 1]\n n$1=_fun_break_scope::X_~X(&x5:break_scope::X*) injected [line 128, column 1]\n _=*&x1:break_scope::X [line 128, column 1]\n n$3=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 128, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x1,x5); [line 128, column 1]\n APPLY_ABSTRACTION; [line 128, column 1]\n " shape="box"] "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_3" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_2" ; @@ -239,7 +239,7 @@ digraph cfg { "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_5" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_17" ; "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_5" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_18" ; -"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_6" [label="6: Destruction \n _=*&x4:break_scope::X [line 125, column 5]\n n$10=_fun_break_scope::X_~X(&x4:break_scope::X*) [line 125, column 5]\n EXIT_SCOPE(_,n$10,x4); [line 125, column 5]\n APPLY_ABSTRACTION; [line 125, column 5]\n " shape="box"] +"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_6" [label="6: Destruction \n _=*&x4:break_scope::X [line 125, column 5]\n n$10=_fun_break_scope::X_~X(&x4:break_scope::X*) injected [line 125, column 5]\n EXIT_SCOPE(_,n$10,x4); [line 125, column 5]\n APPLY_ABSTRACTION; [line 125, column 5]\n " shape="box"] "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_6" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_4" ; @@ -247,11 +247,11 @@ digraph cfg { "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_7" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_6" ; -"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_8" [label="8: Destruction \n _=*&x3:break_scope::X [line 122, column 5]\n n$15=_fun_break_scope::X_~X(&x3:break_scope::X*) [line 122, column 5]\n APPLY_ABSTRACTION; [line 122, column 5]\n " shape="box"] +"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_8" [label="8: Destruction \n _=*&x3:break_scope::X [line 122, column 5]\n n$15=_fun_break_scope::X_~X(&x3:break_scope::X*) injected [line 122, column 5]\n APPLY_ABSTRACTION; [line 122, column 5]\n " shape="box"] "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_8" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_7" ; -"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_9" [label="9: Destruction \n _=*&x3:break_scope::X [line 121, column 7]\n n$18=_fun_break_scope::X_~X(&x3:break_scope::X*) [line 121, column 7]\n EXIT_SCOPE(_,n$18,x3); [line 121, column 7]\n APPLY_ABSTRACTION; [line 121, column 7]\n " shape="box"] +"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_9" [label="9: Destruction \n _=*&x3:break_scope::X [line 121, column 7]\n n$18=_fun_break_scope::X_~X(&x3:break_scope::X*) injected [line 121, column 7]\n EXIT_SCOPE(_,n$18,x3); [line 121, column 7]\n APPLY_ABSTRACTION; [line 121, column 7]\n " shape="box"] "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_9" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_4" ; @@ -259,7 +259,7 @@ digraph cfg { "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_10" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_9" ; -"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_11" [label="11: Destruction \n _=*&x2:break_scope::X [line 118, column 5]\n n$23=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 118, column 5]\n EXIT_SCOPE(_,n$23,x2); [line 118, column 5]\n APPLY_ABSTRACTION; [line 118, column 5]\n " shape="box"] +"test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_11" [label="11: Destruction \n _=*&x2:break_scope::X [line 118, column 5]\n n$23=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 118, column 5]\n EXIT_SCOPE(_,n$23,x2); [line 118, column 5]\n APPLY_ABSTRACTION; [line 118, column 5]\n " shape="box"] "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_11" -> "test_switch#break_scope#5012999682930893305.43ca855443a5fa68fa701447a90f7a1f_10" ; @@ -304,7 +304,7 @@ digraph cfg { "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_2" [label="2: Exit break_scope::test_while1 \n NULLIFY(&x2); [line 76, column 1]\n NULLIFY(&x1); [line 76, column 1]\n NULLIFY(&x4); [line 76, column 1]\n " color=yellow style=filled] -"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 76, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 76, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 76, column 1]\n APPLY_ABSTRACTION; [line 76, column 1]\n " shape="box"] +"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 76, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 76, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 76, column 1]\n APPLY_ABSTRACTION; [line 76, column 1]\n " shape="box"] "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_3" -> "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_2" ; @@ -334,11 +334,11 @@ digraph cfg { "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_9" -> "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_14" ; -"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_10" [label="10: Destruction \n _=*&x2:break_scope::X [line 72, column 5]\n n$7=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 72, column 5]\n APPLY_ABSTRACTION; [line 72, column 5]\n " shape="box"] +"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_10" [label="10: Destruction \n _=*&x2:break_scope::X [line 72, column 5]\n n$7=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 72, column 5]\n APPLY_ABSTRACTION; [line 72, column 5]\n " shape="box"] "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_10" -> "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_7" ; -"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_11" [label="11: Destruction \n _=*&x2:break_scope::X [line 71, column 7]\n n$10=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 71, column 7]\n EXIT_SCOPE(_,n$10,x2); [line 71, column 7]\n APPLY_ABSTRACTION; [line 71, column 7]\n " shape="box"] +"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_11" [label="11: Destruction \n _=*&x2:break_scope::X [line 71, column 7]\n n$10=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 71, column 7]\n EXIT_SCOPE(_,n$10,x2); [line 71, column 7]\n APPLY_ABSTRACTION; [line 71, column 7]\n " shape="box"] "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_11" -> "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_3" ; @@ -346,7 +346,7 @@ digraph cfg { "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_12" -> "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_11" ; -"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_13" [label="13: Destruction \n _=*&x4:break_scope::X [line 74, column 5]\n n$15=_fun_break_scope::X_~X(&x4:break_scope::X*) [line 74, column 5]\n EXIT_SCOPE(_,n$15,x4); [line 74, column 5]\n APPLY_ABSTRACTION; [line 74, column 5]\n " shape="box"] +"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_13" [label="13: Destruction \n _=*&x4:break_scope::X [line 74, column 5]\n n$15=_fun_break_scope::X_~X(&x4:break_scope::X*) injected [line 74, column 5]\n EXIT_SCOPE(_,n$15,x4); [line 74, column 5]\n APPLY_ABSTRACTION; [line 74, column 5]\n " shape="box"] "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_13" -> "test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_7" ; @@ -365,7 +365,7 @@ digraph cfg { "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_2" [label="2: Exit break_scope::test_while2 \n NULLIFY(&x2); [line 100, column 1]\n NULLIFY(&x1); [line 100, column 1]\n NULLIFY(&x3); [line 100, column 1]\n " color=yellow style=filled] -"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 100, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 100, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 100, column 1]\n APPLY_ABSTRACTION; [line 100, column 1]\n " shape="box"] +"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_3" [label="3: Destruction \n _=*&x1:break_scope::X [line 100, column 1]\n n$1=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 100, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 100, column 1]\n APPLY_ABSTRACTION; [line 100, column 1]\n " shape="box"] "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_3" -> "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_2" ; @@ -382,7 +382,7 @@ digraph cfg { "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_6" -> "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_3" ; -"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_7" [label="7: Destruction \n _=*&x2:break_scope::X [line 99, column 3]\n n$5=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 99, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 99, column 3]\n APPLY_ABSTRACTION; [line 99, column 3]\n " shape="box"] +"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_7" [label="7: Destruction \n _=*&x2:break_scope::X [line 99, column 3]\n n$5=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 99, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 99, column 3]\n APPLY_ABSTRACTION; [line 99, column 3]\n " shape="box"] "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_7" -> "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_4" ; @@ -399,11 +399,11 @@ digraph cfg { "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_10" -> "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_7" ; -"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_11" [label="11: Destruction \n _=*&x3:break_scope::X [line 98, column 5]\n n$9=_fun_break_scope::X_~X(&x3:break_scope::X*) [line 98, column 5]\n APPLY_ABSTRACTION; [line 98, column 5]\n " shape="box"] +"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_11" [label="11: Destruction \n _=*&x3:break_scope::X [line 98, column 5]\n n$9=_fun_break_scope::X_~X(&x3:break_scope::X*) injected [line 98, column 5]\n APPLY_ABSTRACTION; [line 98, column 5]\n " shape="box"] "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_11" -> "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_8" ; -"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_12" [label="12: Destruction \n _=*&x3:break_scope::X [line 97, column 7]\n n$12=_fun_break_scope::X_~X(&x3:break_scope::X*) [line 97, column 7]\n EXIT_SCOPE(_,n$12,x3); [line 97, column 7]\n APPLY_ABSTRACTION; [line 97, column 7]\n " shape="box"] +"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_12" [label="12: Destruction \n _=*&x3:break_scope::X [line 97, column 7]\n n$12=_fun_break_scope::X_~X(&x3:break_scope::X*) injected [line 97, column 7]\n EXIT_SCOPE(_,n$12,x3); [line 97, column 7]\n APPLY_ABSTRACTION; [line 97, column 7]\n " shape="box"] "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_12" -> "test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_7" ; @@ -426,7 +426,7 @@ digraph cfg { "test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_2" [label="2: Exit break_scope::test_while3 \n NULLIFY(&x1); [line 111, column 1]\n NULLIFY(&x2); [line 111, column 1]\n NULLIFY(&x3); [line 111, column 1]\n " color=yellow style=filled] -"test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_3" [label="3: Destruction \n _=*&x3:break_scope::X [line 111, column 1]\n n$1=_fun_break_scope::X_~X(&x3:break_scope::X*) [line 111, column 1]\n _=*&x1:break_scope::X [line 111, column 1]\n n$3=_fun_break_scope::X_~X(&x1:break_scope::X*) [line 111, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x3,x1); [line 111, column 1]\n APPLY_ABSTRACTION; [line 111, column 1]\n " shape="box"] +"test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_3" [label="3: Destruction \n _=*&x3:break_scope::X [line 111, column 1]\n n$1=_fun_break_scope::X_~X(&x3:break_scope::X*) injected [line 111, column 1]\n _=*&x1:break_scope::X [line 111, column 1]\n n$3=_fun_break_scope::X_~X(&x1:break_scope::X*) injected [line 111, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x3,x1); [line 111, column 1]\n APPLY_ABSTRACTION; [line 111, column 1]\n " shape="box"] "test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_3" -> "test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_2" ; @@ -447,7 +447,7 @@ digraph cfg { "test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_7" -> "test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_4" ; -"test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_8" [label="8: Destruction \n _=*&x2:break_scope::X [line 109, column 3]\n n$9=_fun_break_scope::X_~X(&x2:break_scope::X*) [line 109, column 3]\n EXIT_SCOPE(_,n$9,x2); [line 109, column 3]\n APPLY_ABSTRACTION; [line 109, column 3]\n " shape="box"] +"test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_8" [label="8: Destruction \n _=*&x2:break_scope::X [line 109, column 3]\n n$9=_fun_break_scope::X_~X(&x2:break_scope::X*) injected [line 109, column 3]\n EXIT_SCOPE(_,n$9,x2); [line 109, column 3]\n APPLY_ABSTRACTION; [line 109, column 3]\n " shape="box"] "test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_8" -> "test_while3#break_scope#10134831914750033380.7cab458a264bff5f98e4df48e17e8d7d_5" ; @@ -500,7 +500,7 @@ digraph cfg { "~X#X#break_scope#(321850372193847154).bb0579f8004d4fbf59537d5d55a8dfe9_2" [label="2: Exit break_scope::X_~X \n " color=yellow style=filled] -"~X#X#break_scope#(321850372193847154).bb0579f8004d4fbf59537d5d55a8dfe9_3" [label="3: Destruction \n n$0=*&this:break_scope::X* [line 10, column 9]\n _=*n$0:break_scope::X [line 10, column 9]\n n$2=_fun_break_scope::X___infer_inner_destructor_~X(n$0:break_scope::X*) [line 10, column 9]\n NULLIFY(&this); [line 10, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 9]\n APPLY_ABSTRACTION; [line 10, column 9]\n " shape="box"] +"~X#X#break_scope#(321850372193847154).bb0579f8004d4fbf59537d5d55a8dfe9_3" [label="3: Destruction \n n$0=*&this:break_scope::X* [line 10, column 9]\n _=*n$0:break_scope::X [line 10, column 9]\n n$2=_fun_break_scope::X___infer_inner_destructor_~X(n$0:break_scope::X*) injected [line 10, column 9]\n NULLIFY(&this); [line 10, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 9]\n APPLY_ABSTRACTION; [line 10, column 9]\n " shape="box"] "~X#X#break_scope#(321850372193847154).bb0579f8004d4fbf59537d5d55a8dfe9_3" -> "~X#X#break_scope#(321850372193847154).bb0579f8004d4fbf59537d5d55a8dfe9_2" ; @@ -669,7 +669,7 @@ digraph cfg { "~vec#vec#break_scope#(2726327876410250530).6af158139cecaa31993b3ce213ac0fe6_2" [label="2: Exit break_scope::vec_~vec \n " color=yellow style=filled] -"~vec#vec#break_scope#(2726327876410250530).6af158139cecaa31993b3ce213ac0fe6_3" [label="3: Destruction \n n$0=*&this:break_scope::vec* [line 32, column 8]\n _=*n$0:break_scope::vec [line 32, column 8]\n n$2=_fun_break_scope::vec___infer_inner_destructor_~vec(n$0:break_scope::vec*) [line 32, column 8]\n NULLIFY(&this); [line 32, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 32, column 8]\n APPLY_ABSTRACTION; [line 32, column 8]\n " shape="box"] +"~vec#vec#break_scope#(2726327876410250530).6af158139cecaa31993b3ce213ac0fe6_3" [label="3: Destruction \n n$0=*&this:break_scope::vec* [line 32, column 8]\n _=*n$0:break_scope::vec [line 32, column 8]\n n$2=_fun_break_scope::vec___infer_inner_destructor_~vec(n$0:break_scope::vec*) injected [line 32, column 8]\n NULLIFY(&this); [line 32, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 32, column 8]\n APPLY_ABSTRACTION; [line 32, column 8]\n " shape="box"] "~vec#vec#break_scope#(2726327876410250530).6af158139cecaa31993b3ce213ac0fe6_3" -> "~vec#vec#break_scope#(2726327876410250530).6af158139cecaa31993b3ce213ac0fe6_2" ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/call_on_delete.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/call_on_delete.cpp.dot index c14f952be..02255fc20 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/call_on_delete.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/call_on_delete.cpp.dot @@ -36,7 +36,7 @@ digraph cfg { "~X#X#(9850251229546392500).92228f0925803df4b24e5d788ad29673_2" [label="2: Exit X_~X \n " color=yellow style=filled] -"~X#X#(9850251229546392500).92228f0925803df4b24e5d788ad29673_3" [label="3: Destruction \n n$0=*&this:X* [line 9, column 9]\n _=*n$0:X [line 9, column 9]\n n$2=_fun_X___infer_inner_destructor_~X(n$0:X*) [line 9, column 9]\n NULLIFY(&this); [line 9, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 9, column 9]\n APPLY_ABSTRACTION; [line 9, column 9]\n " shape="box"] +"~X#X#(9850251229546392500).92228f0925803df4b24e5d788ad29673_3" [label="3: Destruction \n n$0=*&this:X* [line 9, column 9]\n _=*n$0:X [line 9, column 9]\n n$2=_fun_X___infer_inner_destructor_~X(n$0:X*) injected [line 9, column 9]\n NULLIFY(&this); [line 9, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 9, column 9]\n APPLY_ABSTRACTION; [line 9, column 9]\n " shape="box"] "~X#X#(9850251229546392500).92228f0925803df4b24e5d788ad29673_3" -> "~X#X#(9850251229546392500).92228f0925803df4b24e5d788ad29673_2" ; 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 dfb0f408a..fdc8ffccf 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/continue_scope.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_2" [label="2: Exit continue_scope::test_do_while \n NULLIFY(&x3); [line 89, column 1]\n NULLIFY(&x1); [line 89, column 1]\n NULLIFY(&x4); [line 89, column 1]\n NULLIFY(&x2); [line 89, column 1]\n " color=yellow style=filled] -"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 89, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 89, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 89, column 1]\n APPLY_ABSTRACTION; [line 89, column 1]\n " shape="box"] +"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 89, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) injected [line 89, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 89, column 1]\n APPLY_ABSTRACTION; [line 89, column 1]\n " shape="box"] "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_3" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_2" ; @@ -23,7 +23,7 @@ digraph cfg { "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_6" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_3" ; -"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_7" [label="7: Destruction \n _=*&x2:continue_scope::X [line 88, column 3]\n n$5=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 88, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 88, column 3]\n " shape="box"] +"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_7" [label="7: Destruction \n _=*&x2:continue_scope::X [line 88, column 3]\n n$5=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 88, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 88, column 3]\n " shape="box"] "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_7" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_5" ; @@ -40,11 +40,11 @@ digraph cfg { "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_10" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_15" ; -"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_11" [label="11: Destruction \n _=*&x3:continue_scope::X [line 85, column 5]\n n$9=_fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 85, column 5]\n APPLY_ABSTRACTION; [line 85, column 5]\n " shape="box"] +"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_11" [label="11: Destruction \n _=*&x3:continue_scope::X [line 85, column 5]\n n$9=_fun_continue_scope::X_~X(&x3:continue_scope::X*) injected [line 85, column 5]\n APPLY_ABSTRACTION; [line 85, column 5]\n " shape="box"] "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_11" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_8" ; -"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_12" [label="12: Destruction \n _=*&x3:continue_scope::X [line 84, column 7]\n n$12=_fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 84, column 7]\n _=*&x2:continue_scope::X [line 84, column 7]\n n$14=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 84, column 7]\n EXIT_SCOPE(_,_,n$12,n$14,x2,x3); [line 84, column 7]\n " shape="box"] +"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_12" [label="12: Destruction \n _=*&x3:continue_scope::X [line 84, column 7]\n n$12=_fun_continue_scope::X_~X(&x3:continue_scope::X*) injected [line 84, column 7]\n _=*&x2:continue_scope::X [line 84, column 7]\n n$14=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 84, column 7]\n EXIT_SCOPE(_,_,n$12,n$14,x2,x3); [line 84, column 7]\n " shape="box"] "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_12" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_5" ; @@ -53,7 +53,7 @@ digraph cfg { "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_13" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_12" ; -"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_14" [label="14: Destruction \n _=*&x4:continue_scope::X [line 87, column 5]\n n$19=_fun_continue_scope::X_~X(&x4:continue_scope::X*) [line 87, column 5]\n EXIT_SCOPE(_,n$19,x4); [line 87, column 5]\n APPLY_ABSTRACTION; [line 87, column 5]\n " shape="box"] +"test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_14" [label="14: Destruction \n _=*&x4:continue_scope::X [line 87, column 5]\n n$19=_fun_continue_scope::X_~X(&x4:continue_scope::X*) injected [line 87, column 5]\n EXIT_SCOPE(_,n$19,x4); [line 87, column 5]\n APPLY_ABSTRACTION; [line 87, column 5]\n " shape="box"] "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_14" -> "test_do_while#continue_scope#8999676231552324448.9fe455097ef7e757730530e9e7c09864_8" ; @@ -77,7 +77,7 @@ digraph cfg { "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_2" [label="2: Exit continue_scope::test_for \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 64, column 1]\n NULLIFY(&x2); [line 64, column 1]\n NULLIFY(&x1); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_return_n$16); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$19); [line 64, column 1]\n NULLIFY(&it); [line 64, column 1]\n NULLIFY(&vector); [line 64, column 1]\n " color=yellow style=filled] -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_3" [label="3: Destruction \n _=*&x2:continue_scope::X [line 64, column 1]\n n$1=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 64, column 1]\n _=*&vector:continue_scope::vec [line 64, column 1]\n n$3=_fun_continue_scope::vec_~vec(&vector:continue_scope::vec*) [line 64, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,vector,x2); [line 64, column 1]\n APPLY_ABSTRACTION; [line 64, column 1]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_3" [label="3: Destruction \n _=*&x2:continue_scope::X [line 64, column 1]\n n$1=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 64, column 1]\n _=*&vector:continue_scope::vec [line 64, column 1]\n n$3=_fun_continue_scope::vec_~vec(&vector:continue_scope::vec*) injected [line 64, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,vector,x2); [line 64, column 1]\n APPLY_ABSTRACTION; [line 64, column 1]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_3" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_2" ; @@ -123,11 +123,11 @@ digraph cfg { "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_13" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_11" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_14" [label="14: Destruction \n _=*&x1:continue_scope::X [line 61, column 5]\n n$28=_fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 61, column 5]\n APPLY_ABSTRACTION; [line 61, column 5]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_14" [label="14: Destruction \n _=*&x1:continue_scope::X [line 61, column 5]\n n$28=_fun_continue_scope::X_~X(&x1:continue_scope::X*) injected [line 61, column 5]\n APPLY_ABSTRACTION; [line 61, column 5]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_14" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_11" ; -"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_15" [label="15: Destruction \n _=*&x1:continue_scope::X [line 60, column 7]\n n$31=_fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 60, column 7]\n EXIT_SCOPE(_,n$31,x1); [line 60, column 7]\n APPLY_ABSTRACTION; [line 60, column 7]\n " shape="box"] +"test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_15" [label="15: Destruction \n _=*&x1:continue_scope::X [line 60, column 7]\n n$31=_fun_continue_scope::X_~X(&x1:continue_scope::X*) injected [line 60, column 7]\n EXIT_SCOPE(_,n$31,x1); [line 60, column 7]\n APPLY_ABSTRACTION; [line 60, column 7]\n " shape="box"] "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_15" -> "test_for#continue_scope#10203739842900202560.4cb2db668430574619fdf529fdd4af8c_7" ; @@ -146,7 +146,7 @@ digraph cfg { "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_2" [label="2: Exit continue_scope::test_for_range \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 53, column 1]\n NULLIFY(&vector); [line 53, column 1]\n NULLIFY(&__begin1); [line 53, column 1]\n NULLIFY(&__end1); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$42); [line 53, column 1]\n NULLIFY(&x2); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$15); [line 53, column 1]\n NULLIFY(&x1); [line 53, column 1]\n NULLIFY(&x); [line 53, column 1]\n NULLIFY(&__range1); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_return_n$25); [line 53, column 1]\n " color=yellow style=filled] -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 53, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 53, column 1]\n _=*&vector:continue_scope::vec [line 53, column 1]\n n$3=_fun_continue_scope::vec_~vec(&vector:continue_scope::vec*) [line 53, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x1,vector); [line 53, column 1]\n APPLY_ABSTRACTION; [line 53, column 1]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 53, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) injected [line 53, column 1]\n _=*&vector:continue_scope::vec [line 53, column 1]\n n$3=_fun_continue_scope::vec_~vec(&vector:continue_scope::vec*) injected [line 53, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x1,vector); [line 53, column 1]\n APPLY_ABSTRACTION; [line 53, column 1]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_3" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_2" ; @@ -191,11 +191,11 @@ digraph cfg { "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_13" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" [label="14: Destruction \n _=*&x2:continue_scope::X [line 51, column 5]\n n$33=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 51, column 5]\n APPLY_ABSTRACTION; [line 51, column 5]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" [label="14: Destruction \n _=*&x2:continue_scope::X [line 51, column 5]\n n$33=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 51, column 5]\n APPLY_ABSTRACTION; [line 51, column 5]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_14" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_11" ; -"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" [label="15: Destruction \n _=*&x2:continue_scope::X [line 50, column 7]\n n$36=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 50, column 7]\n EXIT_SCOPE(_,n$36,x2); [line 50, column 7]\n APPLY_ABSTRACTION; [line 50, column 7]\n " shape="box"] +"test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" [label="15: Destruction \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 EXIT_SCOPE(_,n$36,x2); [line 50, column 7]\n APPLY_ABSTRACTION; [line 50, column 7]\n " shape="box"] "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_15" -> "test_for_range#continue_scope#9937708960633325401.fa75d7368d8f711ae7e040a8b2ae1442_7" ; @@ -227,7 +227,7 @@ digraph cfg { "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_2" [label="2: Exit continue_scope::test_while1 \n NULLIFY(&x2); [line 76, column 1]\n NULLIFY(&x1); [line 76, column 1]\n NULLIFY(&x4); [line 76, column 1]\n " color=yellow style=filled] -"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 76, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 76, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 76, column 1]\n APPLY_ABSTRACTION; [line 76, column 1]\n " shape="box"] +"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 76, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) injected [line 76, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 76, column 1]\n APPLY_ABSTRACTION; [line 76, column 1]\n " shape="box"] "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_3" -> "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_2" ; @@ -257,11 +257,11 @@ digraph cfg { "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_9" -> "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_14" ; -"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_10" [label="10: Destruction \n _=*&x2:continue_scope::X [line 72, column 5]\n n$7=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 72, column 5]\n APPLY_ABSTRACTION; [line 72, column 5]\n " shape="box"] +"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_10" [label="10: Destruction \n _=*&x2:continue_scope::X [line 72, column 5]\n n$7=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 72, column 5]\n APPLY_ABSTRACTION; [line 72, column 5]\n " shape="box"] "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_10" -> "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_7" ; -"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_11" [label="11: Destruction \n _=*&x2:continue_scope::X [line 71, column 7]\n n$10=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 71, column 7]\n EXIT_SCOPE(_,n$10,x2); [line 71, column 7]\n APPLY_ABSTRACTION; [line 71, column 7]\n " shape="box"] +"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_11" [label="11: Destruction \n _=*&x2:continue_scope::X [line 71, column 7]\n n$10=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 71, column 7]\n EXIT_SCOPE(_,n$10,x2); [line 71, column 7]\n APPLY_ABSTRACTION; [line 71, column 7]\n " shape="box"] "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_11" -> "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_4" ; @@ -269,7 +269,7 @@ digraph cfg { "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_12" -> "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_11" ; -"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_13" [label="13: Destruction \n _=*&x4:continue_scope::X [line 74, column 5]\n n$15=_fun_continue_scope::X_~X(&x4:continue_scope::X*) [line 74, column 5]\n EXIT_SCOPE(_,n$15,x4); [line 74, column 5]\n APPLY_ABSTRACTION; [line 74, column 5]\n " shape="box"] +"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_13" [label="13: Destruction \n _=*&x4:continue_scope::X [line 74, column 5]\n n$15=_fun_continue_scope::X_~X(&x4:continue_scope::X*) injected [line 74, column 5]\n EXIT_SCOPE(_,n$15,x4); [line 74, column 5]\n APPLY_ABSTRACTION; [line 74, column 5]\n " shape="box"] "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_13" -> "test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_7" ; @@ -288,7 +288,7 @@ digraph cfg { "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_2" [label="2: Exit continue_scope::test_while2 \n NULLIFY(&x2); [line 100, column 1]\n NULLIFY(&x1); [line 100, column 1]\n NULLIFY(&x3); [line 100, column 1]\n " color=yellow style=filled] -"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 100, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 100, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 100, column 1]\n APPLY_ABSTRACTION; [line 100, column 1]\n " shape="box"] +"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_3" [label="3: Destruction \n _=*&x1:continue_scope::X [line 100, column 1]\n n$1=_fun_continue_scope::X_~X(&x1:continue_scope::X*) injected [line 100, column 1]\n EXIT_SCOPE(_,n$1,x1); [line 100, column 1]\n APPLY_ABSTRACTION; [line 100, column 1]\n " shape="box"] "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_3" -> "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_2" ; @@ -305,7 +305,7 @@ digraph cfg { "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_6" -> "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_3" ; -"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_7" [label="7: Destruction \n _=*&x2:continue_scope::X [line 99, column 3]\n n$5=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 99, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 99, column 3]\n APPLY_ABSTRACTION; [line 99, column 3]\n " shape="box"] +"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_7" [label="7: Destruction \n _=*&x2:continue_scope::X [line 99, column 3]\n n$5=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 99, column 3]\n EXIT_SCOPE(_,n$5,x2); [line 99, column 3]\n APPLY_ABSTRACTION; [line 99, column 3]\n " shape="box"] "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_7" -> "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_4" ; @@ -322,11 +322,11 @@ digraph cfg { "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_10" -> "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_7" ; -"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_11" [label="11: Destruction \n _=*&x3:continue_scope::X [line 98, column 5]\n n$9=_fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 98, column 5]\n APPLY_ABSTRACTION; [line 98, column 5]\n " shape="box"] +"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_11" [label="11: Destruction \n _=*&x3:continue_scope::X [line 98, column 5]\n n$9=_fun_continue_scope::X_~X(&x3:continue_scope::X*) injected [line 98, column 5]\n APPLY_ABSTRACTION; [line 98, column 5]\n " shape="box"] "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_11" -> "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_8" ; -"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_12" [label="12: Destruction \n _=*&x3:continue_scope::X [line 97, column 7]\n n$12=_fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 97, column 7]\n EXIT_SCOPE(_,n$12,x3); [line 97, column 7]\n APPLY_ABSTRACTION; [line 97, column 7]\n " shape="box"] +"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_12" [label="12: Destruction \n _=*&x3:continue_scope::X [line 97, column 7]\n n$12=_fun_continue_scope::X_~X(&x3:continue_scope::X*) injected [line 97, column 7]\n EXIT_SCOPE(_,n$12,x3); [line 97, column 7]\n APPLY_ABSTRACTION; [line 97, column 7]\n " shape="box"] "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_12" -> "test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_8" ; @@ -349,7 +349,7 @@ digraph cfg { "test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_2" [label="2: Exit continue_scope::test_while3 \n NULLIFY(&x1); [line 111, column 1]\n NULLIFY(&x2); [line 111, column 1]\n NULLIFY(&x3); [line 111, column 1]\n " color=yellow style=filled] -"test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_3" [label="3: Destruction \n _=*&x3:continue_scope::X [line 111, column 1]\n n$1=_fun_continue_scope::X_~X(&x3:continue_scope::X*) [line 111, column 1]\n _=*&x1:continue_scope::X [line 111, column 1]\n n$3=_fun_continue_scope::X_~X(&x1:continue_scope::X*) [line 111, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x3,x1); [line 111, column 1]\n APPLY_ABSTRACTION; [line 111, column 1]\n " shape="box"] +"test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_3" [label="3: Destruction \n _=*&x3:continue_scope::X [line 111, column 1]\n n$1=_fun_continue_scope::X_~X(&x3:continue_scope::X*) injected [line 111, column 1]\n _=*&x1:continue_scope::X [line 111, column 1]\n n$3=_fun_continue_scope::X_~X(&x1:continue_scope::X*) injected [line 111, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x3,x1); [line 111, column 1]\n APPLY_ABSTRACTION; [line 111, column 1]\n " shape="box"] "test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_3" -> "test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_2" ; @@ -370,7 +370,7 @@ digraph cfg { "test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_7" -> "test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_4" ; -"test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_8" [label="8: Destruction \n _=*&x2:continue_scope::X [line 109, column 3]\n n$9=_fun_continue_scope::X_~X(&x2:continue_scope::X*) [line 109, column 3]\n EXIT_SCOPE(_,n$9,x2); [line 109, column 3]\n APPLY_ABSTRACTION; [line 109, column 3]\n " shape="box"] +"test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_8" [label="8: Destruction \n _=*&x2:continue_scope::X [line 109, column 3]\n n$9=_fun_continue_scope::X_~X(&x2:continue_scope::X*) injected [line 109, column 3]\n EXIT_SCOPE(_,n$9,x2); [line 109, column 3]\n APPLY_ABSTRACTION; [line 109, column 3]\n " shape="box"] "test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_8" -> "test_while3#continue_scope#1176125085634537673.a024bcf519539ef1deac237c06a02a78_5" ; @@ -423,7 +423,7 @@ digraph cfg { "~X#X#continue_scope#(14106261246415748043).bee8da02915b57fe8c8e01c9b731311d_2" [label="2: Exit continue_scope::X_~X \n " color=yellow style=filled] -"~X#X#continue_scope#(14106261246415748043).bee8da02915b57fe8c8e01c9b731311d_3" [label="3: Destruction \n n$0=*&this:continue_scope::X* [line 10, column 9]\n _=*n$0:continue_scope::X [line 10, column 9]\n n$2=_fun_continue_scope::X___infer_inner_destructor_~X(n$0:continue_scope::X*) [line 10, column 9]\n NULLIFY(&this); [line 10, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 9]\n APPLY_ABSTRACTION; [line 10, column 9]\n " shape="box"] +"~X#X#continue_scope#(14106261246415748043).bee8da02915b57fe8c8e01c9b731311d_3" [label="3: Destruction \n n$0=*&this:continue_scope::X* [line 10, column 9]\n _=*n$0:continue_scope::X [line 10, column 9]\n n$2=_fun_continue_scope::X___infer_inner_destructor_~X(n$0:continue_scope::X*) injected [line 10, column 9]\n NULLIFY(&this); [line 10, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 9]\n APPLY_ABSTRACTION; [line 10, column 9]\n " shape="box"] "~X#X#continue_scope#(14106261246415748043).bee8da02915b57fe8c8e01c9b731311d_3" -> "~X#X#continue_scope#(14106261246415748043).bee8da02915b57fe8c8e01c9b731311d_2" ; @@ -592,7 +592,7 @@ digraph cfg { "~vec#vec#continue_scope#(10360929843329979119).4ca99321ca697a550551ca058254a138_2" [label="2: Exit continue_scope::vec_~vec \n " color=yellow style=filled] -"~vec#vec#continue_scope#(10360929843329979119).4ca99321ca697a550551ca058254a138_3" [label="3: Destruction \n n$0=*&this:continue_scope::vec* [line 32, column 8]\n _=*n$0:continue_scope::vec [line 32, column 8]\n n$2=_fun_continue_scope::vec___infer_inner_destructor_~vec(n$0:continue_scope::vec*) [line 32, column 8]\n NULLIFY(&this); [line 32, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 32, column 8]\n APPLY_ABSTRACTION; [line 32, column 8]\n " shape="box"] +"~vec#vec#continue_scope#(10360929843329979119).4ca99321ca697a550551ca058254a138_3" [label="3: Destruction \n n$0=*&this:continue_scope::vec* [line 32, column 8]\n _=*n$0:continue_scope::vec [line 32, column 8]\n n$2=_fun_continue_scope::vec___infer_inner_destructor_~vec(n$0:continue_scope::vec*) injected [line 32, column 8]\n NULLIFY(&this); [line 32, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 32, column 8]\n APPLY_ABSTRACTION; [line 32, column 8]\n " shape="box"] "~vec#vec#continue_scope#(10360929843329979119).4ca99321ca697a550551ca058254a138_3" -> "~vec#vec#continue_scope#(10360929843329979119).4ca99321ca697a550551ca058254a138_2" ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/destructor_bases.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/destructor_bases.cpp.dot index 272b6fad4..ce8108f40 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/destructor_bases.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/destructor_bases.cpp.dot @@ -25,7 +25,7 @@ digraph cfg { "~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_2" [label="2: Exit A_~A \n " color=yellow style=filled] -"~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_3" [label="3: Destruction \n n$0=*&this:A* [line 15, column 8]\n _=*n$0:A [line 15, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:A*) [line 15, column 8]\n _=*n$0:A [line 15, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:A*) [line 15, column 8]\n NULLIFY(&this); [line 15, column 8]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 15, column 8]\n APPLY_ABSTRACTION; [line 15, column 8]\n " shape="box"] +"~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_3" [label="3: Destruction \n n$0=*&this:A* [line 15, column 8]\n _=*n$0:A [line 15, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:A*) injected [line 15, column 8]\n _=*n$0:A [line 15, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:A*) injected [line 15, column 8]\n NULLIFY(&this); [line 15, column 8]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 15, column 8]\n APPLY_ABSTRACTION; [line 15, column 8]\n " shape="box"] "~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_3" -> "~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_2" ; @@ -58,7 +58,7 @@ digraph cfg { "~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_2" [label="2: Exit B_~B \n " color=yellow style=filled] -"~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_3" [label="3: Destruction \n n$0=*&this:B* [line 20, column 8]\n _=*n$0:B [line 20, column 8]\n n$6=_fun_B___infer_inner_destructor_~B(n$0:B*) [line 20, column 8]\n _=*n$0:B [line 20, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:B*) [line 20, column 8]\n _=*n$0:B [line 20, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:B*) [line 20, column 8]\n NULLIFY(&this); [line 20, column 8]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 20, column 8]\n APPLY_ABSTRACTION; [line 20, column 8]\n " shape="box"] +"~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_3" [label="3: Destruction \n n$0=*&this:B* [line 20, column 8]\n _=*n$0:B [line 20, column 8]\n n$6=_fun_B___infer_inner_destructor_~B(n$0:B*) injected [line 20, column 8]\n _=*n$0:B [line 20, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:B*) injected [line 20, column 8]\n _=*n$0:B [line 20, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:B*) injected [line 20, column 8]\n NULLIFY(&this); [line 20, column 8]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 20, column 8]\n APPLY_ABSTRACTION; [line 20, column 8]\n " shape="box"] "~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_3" -> "~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_2" ; @@ -83,7 +83,7 @@ digraph cfg { "~C#C#(8663121109475859597).c4887e86b7c3519c4397dd483476d5d2_2" [label="2: Exit C_~C \n " color=yellow style=filled] -"~C#C#(8663121109475859597).c4887e86b7c3519c4397dd483476d5d2_3" [label="3: Destruction \n n$0=*&this:C* [line 25, column 8]\n _=*n$0:C [line 25, column 8]\n n$2=_fun_C___infer_inner_destructor_~C(n$0:C*) [line 25, column 8]\n NULLIFY(&this); [line 25, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 25, column 8]\n APPLY_ABSTRACTION; [line 25, column 8]\n " shape="box"] +"~C#C#(8663121109475859597).c4887e86b7c3519c4397dd483476d5d2_3" [label="3: Destruction \n n$0=*&this:C* [line 25, column 8]\n _=*n$0:C [line 25, column 8]\n n$2=_fun_C___infer_inner_destructor_~C(n$0:C*) injected [line 25, column 8]\n NULLIFY(&this); [line 25, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 25, column 8]\n APPLY_ABSTRACTION; [line 25, column 8]\n " shape="box"] "~C#C#(8663121109475859597).c4887e86b7c3519c4397dd483476d5d2_3" -> "~C#C#(8663121109475859597).c4887e86b7c3519c4397dd483476d5d2_2" ; @@ -117,11 +117,11 @@ digraph cfg { "__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_2" [label="2: Exit D___infer_inner_destructor_~D \n NULLIFY(&a); [line 31, column 15]\n " color=yellow style=filled] -"__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_3" [label="3: Destruction \n n$0=*&this:D* [line 31, column 15]\n _=*n$0.b:B [line 31, column 15]\n n$2=_fun_B_~B(n$0.b:B*) [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$6=_fun_C___infer_inner_destructor_~C(n$0:D*) [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:D*) [line 31, column 15]\n NULLIFY(&this); [line 31, column 15]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 31, column 15]\n APPLY_ABSTRACTION; [line 31, column 15]\n " shape="box"] +"__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_3" [label="3: Destruction \n n$0=*&this:D* [line 31, column 15]\n _=*n$0.b:B [line 31, column 15]\n n$2=_fun_B_~B(n$0.b:B*) injected [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$6=_fun_C___infer_inner_destructor_~C(n$0:D*) injected [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:D*) injected [line 31, column 15]\n NULLIFY(&this); [line 31, column 15]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 31, column 15]\n APPLY_ABSTRACTION; [line 31, column 15]\n " shape="box"] "__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_3" -> "__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_2" ; -"__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_4" [label="4: Destruction \n _=*&a:A [line 31, column 15]\n n$9=_fun_A_~A(&a:A*) [line 31, column 15]\n EXIT_SCOPE(_,n$9,a); [line 31, column 15]\n " shape="box"] +"__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_4" [label="4: Destruction \n _=*&a:A [line 31, column 15]\n n$9=_fun_A_~A(&a:A*) injected [line 31, column 15]\n EXIT_SCOPE(_,n$9,a); [line 31, column 15]\n " shape="box"] "__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_4" -> "__infer_inner_destructor_~D#D#(5618221758133596168).bafb8a40b92952d90ec3736fc827de7f_3" ; @@ -136,7 +136,7 @@ digraph cfg { "~D#D#(5618221758133596168).bd1f40c4fa1d5ed90c732a34d33e4d7c_2" [label="2: Exit D_~D \n " color=yellow style=filled] -"~D#D#(5618221758133596168).bd1f40c4fa1d5ed90c732a34d33e4d7c_3" [label="3: Destruction \n n$0=*&this:D* [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$4=_fun_D___infer_inner_destructor_~D(n$0:D*) [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:D*) [line 31, column 15]\n NULLIFY(&this); [line 31, column 15]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 31, column 15]\n APPLY_ABSTRACTION; [line 31, column 15]\n " shape="box"] +"~D#D#(5618221758133596168).bd1f40c4fa1d5ed90c732a34d33e4d7c_3" [label="3: Destruction \n n$0=*&this:D* [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$4=_fun_D___infer_inner_destructor_~D(n$0:D*) injected [line 31, column 15]\n _=*n$0:D [line 31, column 15]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:D*) injected [line 31, column 15]\n NULLIFY(&this); [line 31, column 15]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 31, column 15]\n APPLY_ABSTRACTION; [line 31, column 15]\n " shape="box"] "~D#D#(5618221758133596168).bd1f40c4fa1d5ed90c732a34d33e4d7c_3" -> "~D#D#(5618221758133596168).bd1f40c4fa1d5ed90c732a34d33e4d7c_2" ; @@ -174,7 +174,7 @@ digraph cfg { "__infer_inner_destructor_~E#E#(2987579715549688623).0c2beae2fa1834341749df3ec1f5ac22_2" [label="2: Exit E___infer_inner_destructor_~E \n " color=yellow style=filled] -"__infer_inner_destructor_~E#E#(2987579715549688623).0c2beae2fa1834341749df3ec1f5ac22_3" [label="3: Destruction \n n$0=*&this:E* [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$6=_fun_D___infer_inner_destructor_~D(n$0:E*) [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$4=_fun_C___infer_inner_destructor_~C(n$0:E*) [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$2=_fun_B___infer_inner_destructor_~B(n$0:E*) [line 36, column 8]\n NULLIFY(&this); [line 36, column 8]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 36, column 8]\n APPLY_ABSTRACTION; [line 36, column 8]\n " shape="box"] +"__infer_inner_destructor_~E#E#(2987579715549688623).0c2beae2fa1834341749df3ec1f5ac22_3" [label="3: Destruction \n n$0=*&this:E* [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$6=_fun_D___infer_inner_destructor_~D(n$0:E*) injected [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$4=_fun_C___infer_inner_destructor_~C(n$0:E*) injected [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$2=_fun_B___infer_inner_destructor_~B(n$0:E*) injected [line 36, column 8]\n NULLIFY(&this); [line 36, column 8]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 36, column 8]\n APPLY_ABSTRACTION; [line 36, column 8]\n " shape="box"] "__infer_inner_destructor_~E#E#(2987579715549688623).0c2beae2fa1834341749df3ec1f5ac22_3" -> "__infer_inner_destructor_~E#E#(2987579715549688623).0c2beae2fa1834341749df3ec1f5ac22_2" ; @@ -185,7 +185,7 @@ digraph cfg { "~E#E#(2987579715549688623).452c4ab608cbb84e7144bf65a39276d9_2" [label="2: Exit E_~E \n " color=yellow style=filled] -"~E#E#(2987579715549688623).452c4ab608cbb84e7144bf65a39276d9_3" [label="3: Destruction \n n$0=*&this:E* [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$6=_fun_E___infer_inner_destructor_~E(n$0:E*) [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:E*) [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:E*) [line 36, column 8]\n NULLIFY(&this); [line 36, column 8]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 36, column 8]\n APPLY_ABSTRACTION; [line 36, column 8]\n " shape="box"] +"~E#E#(2987579715549688623).452c4ab608cbb84e7144bf65a39276d9_3" [label="3: Destruction \n n$0=*&this:E* [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$6=_fun_E___infer_inner_destructor_~E(n$0:E*) injected [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:E*) injected [line 36, column 8]\n _=*n$0:E [line 36, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:E*) injected [line 36, column 8]\n NULLIFY(&this); [line 36, column 8]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 36, column 8]\n APPLY_ABSTRACTION; [line 36, column 8]\n " shape="box"] "~E#E#(2987579715549688623).452c4ab608cbb84e7144bf65a39276d9_3" -> "~E#E#(2987579715549688623).452c4ab608cbb84e7144bf65a39276d9_2" ; @@ -223,7 +223,7 @@ digraph cfg { "__infer_inner_destructor_~F#F#(5727529154579633650).20752c7323d15bc6d30fac190df5baf8_2" [label="2: Exit F___infer_inner_destructor_~F \n " color=yellow style=filled] -"__infer_inner_destructor_~F#F#(5727529154579633650).20752c7323d15bc6d30fac190df5baf8_3" [label="3: Destruction \n n$0=*&this:F* [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$4=_fun_D___infer_inner_destructor_~D(n$0:F*) [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$2=_fun_B___infer_inner_destructor_~B(n$0:F*) [line 41, column 8]\n NULLIFY(&this); [line 41, column 8]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 41, column 8]\n APPLY_ABSTRACTION; [line 41, column 8]\n " shape="box"] +"__infer_inner_destructor_~F#F#(5727529154579633650).20752c7323d15bc6d30fac190df5baf8_3" [label="3: Destruction \n n$0=*&this:F* [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$4=_fun_D___infer_inner_destructor_~D(n$0:F*) injected [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$2=_fun_B___infer_inner_destructor_~B(n$0:F*) injected [line 41, column 8]\n NULLIFY(&this); [line 41, column 8]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 41, column 8]\n APPLY_ABSTRACTION; [line 41, column 8]\n " shape="box"] "__infer_inner_destructor_~F#F#(5727529154579633650).20752c7323d15bc6d30fac190df5baf8_3" -> "__infer_inner_destructor_~F#F#(5727529154579633650).20752c7323d15bc6d30fac190df5baf8_2" ; @@ -234,7 +234,7 @@ digraph cfg { "~F#F#(5727529154579633650).f1ad6d785ba06c47f402bc76b9b85f73_2" [label="2: Exit F_~F \n " color=yellow style=filled] -"~F#F#(5727529154579633650).f1ad6d785ba06c47f402bc76b9b85f73_3" [label="3: Destruction \n n$0=*&this:F* [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$8=_fun_F___infer_inner_destructor_~F(n$0:F*) [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$6=_fun_C___infer_inner_destructor_~C(n$0:F*) [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:F*) [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:F*) [line 41, column 8]\n NULLIFY(&this); [line 41, column 8]\n EXIT_SCOPE(_,_,_,_,n$0,n$2,n$4,n$6,n$8,this); [line 41, column 8]\n APPLY_ABSTRACTION; [line 41, column 8]\n " shape="box"] +"~F#F#(5727529154579633650).f1ad6d785ba06c47f402bc76b9b85f73_3" [label="3: Destruction \n n$0=*&this:F* [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$8=_fun_F___infer_inner_destructor_~F(n$0:F*) injected [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$6=_fun_C___infer_inner_destructor_~C(n$0:F*) injected [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$4=_fun_A___infer_inner_destructor_~A(n$0:F*) injected [line 41, column 8]\n _=*n$0:F [line 41, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:F*) injected [line 41, column 8]\n NULLIFY(&this); [line 41, column 8]\n EXIT_SCOPE(_,_,_,_,n$0,n$2,n$4,n$6,n$8,this); [line 41, column 8]\n APPLY_ABSTRACTION; [line 41, column 8]\n " shape="box"] "~F#F#(5727529154579633650).f1ad6d785ba06c47f402bc76b9b85f73_3" -> "~F#F#(5727529154579633650).f1ad6d785ba06c47f402bc76b9b85f73_2" ; @@ -259,7 +259,7 @@ digraph cfg { "~T#T#(198129514833990712).9a1fb2f2d427aff6059a6de0c57b5949_2" [label="2: Exit T_~T \n " color=yellow style=filled] -"~T#T#(198129514833990712).9a1fb2f2d427aff6059a6de0c57b5949_3" [label="3: Destruction \n n$0=*&this:T* [line 10, column 8]\n _=*n$0:T [line 10, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:T*) [line 10, column 8]\n NULLIFY(&this); [line 10, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 8]\n APPLY_ABSTRACTION; [line 10, column 8]\n " shape="box"] +"~T#T#(198129514833990712).9a1fb2f2d427aff6059a6de0c57b5949_3" [label="3: Destruction \n n$0=*&this:T* [line 10, column 8]\n _=*n$0:T [line 10, column 8]\n n$2=_fun_T___infer_inner_destructor_~T(n$0:T*) injected [line 10, column 8]\n NULLIFY(&this); [line 10, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 8]\n APPLY_ABSTRACTION; [line 10, column 8]\n " shape="box"] "~T#T#(198129514833990712).9a1fb2f2d427aff6059a6de0c57b5949_3" -> "~T#T#(198129514833990712).9a1fb2f2d427aff6059a6de0c57b5949_2" ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/scope.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/scope.cpp.dot index cadcaec40..8a617c82c 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/scope.cpp.dot @@ -18,7 +18,7 @@ digraph cfg { "getX#destructor_scope(class destructor_scope::X)#11739464242911605656.956e6b931ba67c14d56b1314b7f2fce7_2" [label="2: Exit destructor_scope::getX \n NULLIFY(&x); [line 71, column 1]\n " color=yellow style=filled] -"getX#destructor_scope(class destructor_scope::X)#11739464242911605656.956e6b931ba67c14d56b1314b7f2fce7_3" [label="3: Return Stmt \n n$0=*&__return_param:destructor_scope::X* [line 70, column 3]\n n$1=_fun_destructor_scope::X_X(n$0:destructor_scope::X*,&x:destructor_scope::X&) [line 70, column 10]\n _=*&x:destructor_scope::X [line 70, column 10]\n n$3=_fun_destructor_scope::X_~X(&x:destructor_scope::X*) [line 70, column 10]\n NULLIFY(&__return_param); [line 70, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,x); [line 70, column 10]\n APPLY_ABSTRACTION; [line 70, column 10]\n " shape="box"] +"getX#destructor_scope(class destructor_scope::X)#11739464242911605656.956e6b931ba67c14d56b1314b7f2fce7_3" [label="3: Return Stmt \n n$0=*&__return_param:destructor_scope::X* [line 70, column 3]\n n$1=_fun_destructor_scope::X_X(n$0:destructor_scope::X*,&x:destructor_scope::X&) [line 70, column 10]\n _=*&x:destructor_scope::X [line 70, column 10]\n n$3=_fun_destructor_scope::X_~X(&x:destructor_scope::X*) injected [line 70, column 10]\n NULLIFY(&__return_param); [line 70, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,x); [line 70, column 10]\n APPLY_ABSTRACTION; [line 70, column 10]\n " shape="box"] "getX#destructor_scope(class destructor_scope::X)#11739464242911605656.956e6b931ba67c14d56b1314b7f2fce7_3" -> "getX#destructor_scope(class destructor_scope::X)#11739464242911605656.956e6b931ba67c14d56b1314b7f2fce7_2" ; @@ -33,7 +33,7 @@ digraph cfg { "getZ#destructor_scope(class destructor_scope::Z)#13110319947448813202.27b8261073c8d26082c5ea18b0194031_2" [label="2: Exit destructor_scope::getZ \n NULLIFY(&z); [line 76, column 1]\n " color=yellow style=filled] -"getZ#destructor_scope(class destructor_scope::Z)#13110319947448813202.27b8261073c8d26082c5ea18b0194031_3" [label="3: Return Stmt \n n$0=*&__return_param:destructor_scope::Z* [line 75, column 3]\n n$1=_fun_destructor_scope::Z_Z(n$0:destructor_scope::Z*,&z:destructor_scope::Z&) [line 75, column 10]\n _=*&z:destructor_scope::Z [line 75, column 10]\n n$3=_fun_destructor_scope::Z_~Z(&z:destructor_scope::Z*) [line 75, column 10]\n NULLIFY(&__return_param); [line 75, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,z); [line 75, column 10]\n APPLY_ABSTRACTION; [line 75, column 10]\n " shape="box"] +"getZ#destructor_scope(class destructor_scope::Z)#13110319947448813202.27b8261073c8d26082c5ea18b0194031_3" [label="3: Return Stmt \n n$0=*&__return_param:destructor_scope::Z* [line 75, column 3]\n n$1=_fun_destructor_scope::Z_Z(n$0:destructor_scope::Z*,&z:destructor_scope::Z&) [line 75, column 10]\n _=*&z:destructor_scope::Z [line 75, column 10]\n n$3=_fun_destructor_scope::Z_~Z(&z:destructor_scope::Z*) injected [line 75, column 10]\n NULLIFY(&__return_param); [line 75, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,z); [line 75, column 10]\n APPLY_ABSTRACTION; [line 75, column 10]\n " shape="box"] "getZ#destructor_scope(class destructor_scope::Z)#13110319947448813202.27b8261073c8d26082c5ea18b0194031_3" -> "getZ#destructor_scope(class destructor_scope::Z)#13110319947448813202.27b8261073c8d26082c5ea18b0194031_2" ; @@ -48,11 +48,11 @@ digraph cfg { "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_2" [label="2: Exit destructor_scope::test1 \n NULLIFY(&x3); [line 55, column 1]\n NULLIFY(&y2); [line 55, column 1]\n NULLIFY(&s); [line 55, column 1]\n NULLIFY(&y1); [line 55, column 1]\n NULLIFY(&y3); [line 55, column 1]\n NULLIFY(&x2); [line 55, column 1]\n NULLIFY(&x1); [line 55, column 1]\n " color=yellow style=filled] -"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_3" [label="3: Destruction \n _=*&y1:destructor_scope::Y [line 55, column 1]\n n$1=_fun_destructor_scope::Y_~Y(&y1:destructor_scope::Y*) [line 55, column 1]\n _=*&s:destructor_scope::S [line 55, column 1]\n n$3=_fun_destructor_scope::S_~S(&s:destructor_scope::S*) [line 55, column 1]\n _=*&x1:destructor_scope::X [line 55, column 1]\n n$5=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) [line 55, column 1]\n EXIT_SCOPE(_,_,_,n$1,n$3,n$5,x1,y1,s); [line 55, column 1]\n APPLY_ABSTRACTION; [line 55, column 1]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_3" [label="3: Destruction \n _=*&y1:destructor_scope::Y [line 55, column 1]\n n$1=_fun_destructor_scope::Y_~Y(&y1:destructor_scope::Y*) injected [line 55, column 1]\n _=*&s:destructor_scope::S [line 55, column 1]\n n$3=_fun_destructor_scope::S_~S(&s:destructor_scope::S*) injected [line 55, column 1]\n _=*&x1:destructor_scope::X [line 55, column 1]\n n$5=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) injected [line 55, column 1]\n EXIT_SCOPE(_,_,_,n$1,n$3,n$5,x1,y1,s); [line 55, column 1]\n APPLY_ABSTRACTION; [line 55, column 1]\n " shape="box"] "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_3" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_2" ; -"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_4" [label="4: Destruction \n _=*&y3:destructor_scope::Y [line 54, column 11]\n n$8=_fun_destructor_scope::Y_~Y(&y3:destructor_scope::Y*) [line 54, column 11]\n EXIT_SCOPE(_,n$8,y3); [line 54, column 11]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_4" [label="4: Destruction \n _=*&y3:destructor_scope::Y [line 54, column 11]\n n$8=_fun_destructor_scope::Y_~Y(&y3:destructor_scope::Y*) injected [line 54, column 11]\n EXIT_SCOPE(_,n$8,y3); [line 54, column 11]\n " shape="box"] "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_4" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_3" ; @@ -64,11 +64,11 @@ digraph cfg { "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_6" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_5" ; -"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_7" [label="7: Destruction \n _=*&y2:destructor_scope::Y [line 52, column 3]\n n$15=_fun_destructor_scope::Y_~Y(&y2:destructor_scope::Y*) [line 52, column 3]\n _=*&x2:destructor_scope::X [line 52, column 3]\n n$17=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) [line 52, column 3]\n EXIT_SCOPE(_,_,n$15,n$17,x2,y2); [line 52, column 3]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_7" [label="7: Destruction \n _=*&y2:destructor_scope::Y [line 52, column 3]\n n$15=_fun_destructor_scope::Y_~Y(&y2:destructor_scope::Y*) injected [line 52, column 3]\n _=*&x2:destructor_scope::X [line 52, column 3]\n n$17=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) injected [line 52, column 3]\n EXIT_SCOPE(_,_,n$15,n$17,x2,y2); [line 52, column 3]\n " shape="box"] "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_7" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_6" ; -"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_8" [label="8: Destruction \n _=*&x3:destructor_scope::X [line 51, column 5]\n n$20=_fun_destructor_scope::X_~X(&x3:destructor_scope::X*) [line 51, column 5]\n EXIT_SCOPE(_,n$20,x3); [line 51, column 5]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_8" [label="8: Destruction \n _=*&x3:destructor_scope::X [line 51, column 5]\n n$20=_fun_destructor_scope::X_~X(&x3:destructor_scope::X*) injected [line 51, column 5]\n EXIT_SCOPE(_,n$20,x3); [line 51, column 5]\n " shape="box"] "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_8" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_7" ; @@ -84,7 +84,7 @@ digraph cfg { "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_11" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_9" ; -"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_12" [label="12: Return Stmt \n _=*&x3:destructor_scope::X [line 49, column 9]\n n$24=_fun_destructor_scope::X_~X(&x3:destructor_scope::X*) [line 49, column 9]\n _=*&y2:destructor_scope::Y [line 49, column 9]\n n$26=_fun_destructor_scope::Y_~Y(&y2:destructor_scope::Y*) [line 49, column 9]\n _=*&x2:destructor_scope::X [line 49, column 9]\n n$28=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) [line 49, column 9]\n _=*&s:destructor_scope::S [line 49, column 9]\n n$30=_fun_destructor_scope::S_~S(&s:destructor_scope::S*) [line 49, column 9]\n _=*&x1:destructor_scope::X [line 49, column 9]\n n$32=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) [line 49, column 9]\n EXIT_SCOPE(_,_,_,_,_,n$24,n$26,n$28,n$30,n$32,x1,x2,s,y2,x3); [line 49, column 9]\n APPLY_ABSTRACTION; [line 49, column 9]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_12" [label="12: Return Stmt \n _=*&x3:destructor_scope::X [line 49, column 9]\n n$24=_fun_destructor_scope::X_~X(&x3:destructor_scope::X*) injected [line 49, column 9]\n _=*&y2:destructor_scope::Y [line 49, column 9]\n n$26=_fun_destructor_scope::Y_~Y(&y2:destructor_scope::Y*) injected [line 49, column 9]\n _=*&x2:destructor_scope::X [line 49, column 9]\n n$28=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) injected [line 49, column 9]\n _=*&s:destructor_scope::S [line 49, column 9]\n n$30=_fun_destructor_scope::S_~S(&s:destructor_scope::S*) injected [line 49, column 9]\n _=*&x1:destructor_scope::X [line 49, column 9]\n n$32=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) injected [line 49, column 9]\n EXIT_SCOPE(_,_,_,_,_,n$24,n$26,n$28,n$30,n$32,x1,x2,s,y2,x3); [line 49, column 9]\n APPLY_ABSTRACTION; [line 49, column 9]\n " shape="box"] "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_12" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_2" ; @@ -105,7 +105,7 @@ digraph cfg { "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_16" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_14" ; -"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_17" [label="17: Return Stmt \n _=*&y2:destructor_scope::Y [line 44, column 7]\n n$41=_fun_destructor_scope::Y_~Y(&y2:destructor_scope::Y*) [line 44, column 7]\n _=*&x2:destructor_scope::X [line 44, column 7]\n n$43=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) [line 44, column 7]\n _=*&s:destructor_scope::S [line 44, column 7]\n n$45=_fun_destructor_scope::S_~S(&s:destructor_scope::S*) [line 44, column 7]\n _=*&x1:destructor_scope::X [line 44, column 7]\n n$47=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) [line 44, column 7]\n EXIT_SCOPE(_,_,_,_,n$41,n$43,n$45,n$47,x1,x2,s,y2); [line 44, column 7]\n APPLY_ABSTRACTION; [line 44, column 7]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_17" [label="17: Return Stmt \n _=*&y2:destructor_scope::Y [line 44, column 7]\n n$41=_fun_destructor_scope::Y_~Y(&y2:destructor_scope::Y*) injected [line 44, column 7]\n _=*&x2:destructor_scope::X [line 44, column 7]\n n$43=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) injected [line 44, column 7]\n _=*&s:destructor_scope::S [line 44, column 7]\n n$45=_fun_destructor_scope::S_~S(&s:destructor_scope::S*) injected [line 44, column 7]\n _=*&x1:destructor_scope::X [line 44, column 7]\n n$47=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) injected [line 44, column 7]\n EXIT_SCOPE(_,_,_,_,n$41,n$43,n$45,n$47,x1,x2,s,y2); [line 44, column 7]\n APPLY_ABSTRACTION; [line 44, column 7]\n " shape="box"] "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_17" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_2" ; @@ -133,7 +133,7 @@ digraph cfg { "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_2" [label="2: Exit destructor_scope::test2 \n NULLIFY(&x1); [line 66, column 1]\n NULLIFY(&x3); [line 66, column 1]\n NULLIFY(&x2); [line 66, column 1]\n " color=yellow style=filled] -"test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_3" [label="3: Destruction \n _=*&x1:destructor_scope::X [line 66, column 1]\n n$1=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) [line 66, column 1]\n APPLY_ABSTRACTION; [line 66, column 1]\n " shape="box"] +"test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_3" [label="3: Destruction \n _=*&x1:destructor_scope::X [line 66, column 1]\n n$1=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) injected [line 66, column 1]\n APPLY_ABSTRACTION; [line 66, column 1]\n " shape="box"] "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_3" -> "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_2" ; @@ -149,7 +149,7 @@ digraph cfg { "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_6" -> "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_10" ; -"test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_7" [label="7: Return Stmt \n *&return:int=1 [line 61, column 5]\n _=*&x2:destructor_scope::X [line 61, column 12]\n n$5=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) [line 61, column 12]\n _=*&x1:destructor_scope::X [line 61, column 12]\n n$7=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) [line 61, column 12]\n EXIT_SCOPE(_,_,n$5,n$7,x2,x1); [line 61, column 12]\n APPLY_ABSTRACTION; [line 61, column 12]\n " shape="box"] +"test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_7" [label="7: Return Stmt \n *&return:int=1 [line 61, column 5]\n _=*&x2:destructor_scope::X [line 61, column 12]\n n$5=_fun_destructor_scope::X_~X(&x2:destructor_scope::X*) injected [line 61, column 12]\n _=*&x1:destructor_scope::X [line 61, column 12]\n n$7=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) injected [line 61, column 12]\n EXIT_SCOPE(_,_,n$5,n$7,x2,x1); [line 61, column 12]\n APPLY_ABSTRACTION; [line 61, column 12]\n " shape="box"] "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_7" -> "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_2" ; @@ -157,7 +157,7 @@ digraph cfg { "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_8" -> "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_7" ; -"test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_9" [label="9: Return Stmt \n *&return:int=2 [line 64, column 5]\n _=*&x3:destructor_scope::X [line 64, column 12]\n n$12=_fun_destructor_scope::X_~X(&x3:destructor_scope::X*) [line 64, column 12]\n _=*&x1:destructor_scope::X [line 64, column 12]\n n$14=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) [line 64, column 12]\n EXIT_SCOPE(_,_,n$12,n$14,x3,x1); [line 64, column 12]\n APPLY_ABSTRACTION; [line 64, column 12]\n " shape="box"] +"test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_9" [label="9: Return Stmt \n *&return:int=2 [line 64, column 5]\n _=*&x3:destructor_scope::X [line 64, column 12]\n n$12=_fun_destructor_scope::X_~X(&x3:destructor_scope::X*) injected [line 64, column 12]\n _=*&x1:destructor_scope::X [line 64, column 12]\n n$14=_fun_destructor_scope::X_~X(&x1:destructor_scope::X*) injected [line 64, column 12]\n EXIT_SCOPE(_,_,n$12,n$14,x3,x1); [line 64, column 12]\n APPLY_ABSTRACTION; [line 64, column 12]\n " shape="box"] "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_9" -> "test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_2" ; @@ -188,7 +188,7 @@ digraph cfg { "__infer_inner_destructor_~S#S#destructor_scope#(9287491061312513566).4ef80b764b293fdc4260c9ce06a110d3_2" [label="2: Exit destructor_scope::S___infer_inner_destructor_~S \n " color=yellow style=filled] -"__infer_inner_destructor_~S#S#destructor_scope#(9287491061312513566).4ef80b764b293fdc4260c9ce06a110d3_3" [label="3: Destruction \n n$0=*&this:destructor_scope::S* [line 19, column 8]\n _=*n$0.x1:destructor_scope::X [line 19, column 8]\n n$2=_fun_destructor_scope::X_~X(n$0.x1:destructor_scope::X*) [line 19, column 8]\n NULLIFY(&this); [line 19, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 19, column 8]\n APPLY_ABSTRACTION; [line 19, column 8]\n " shape="box"] +"__infer_inner_destructor_~S#S#destructor_scope#(9287491061312513566).4ef80b764b293fdc4260c9ce06a110d3_3" [label="3: Destruction \n n$0=*&this:destructor_scope::S* [line 19, column 8]\n _=*n$0.x1:destructor_scope::X [line 19, column 8]\n n$2=_fun_destructor_scope::X_~X(n$0.x1:destructor_scope::X*) injected [line 19, column 8]\n NULLIFY(&this); [line 19, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 19, column 8]\n APPLY_ABSTRACTION; [line 19, column 8]\n " shape="box"] "__infer_inner_destructor_~S#S#destructor_scope#(9287491061312513566).4ef80b764b293fdc4260c9ce06a110d3_3" -> "__infer_inner_destructor_~S#S#destructor_scope#(9287491061312513566).4ef80b764b293fdc4260c9ce06a110d3_2" ; @@ -199,7 +199,7 @@ digraph cfg { "~S#S#destructor_scope#(9287491061312513566).aca6b266020a04cd52a80258435bda76_2" [label="2: Exit destructor_scope::S_~S \n " color=yellow style=filled] -"~S#S#destructor_scope#(9287491061312513566).aca6b266020a04cd52a80258435bda76_3" [label="3: Destruction \n n$0=*&this:destructor_scope::S* [line 19, column 8]\n _=*n$0:destructor_scope::S [line 19, column 8]\n n$2=_fun_destructor_scope::S___infer_inner_destructor_~S(n$0:destructor_scope::S*) [line 19, column 8]\n NULLIFY(&this); [line 19, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 19, column 8]\n APPLY_ABSTRACTION; [line 19, column 8]\n " shape="box"] +"~S#S#destructor_scope#(9287491061312513566).aca6b266020a04cd52a80258435bda76_3" [label="3: Destruction \n n$0=*&this:destructor_scope::S* [line 19, column 8]\n _=*n$0:destructor_scope::S [line 19, column 8]\n n$2=_fun_destructor_scope::S___infer_inner_destructor_~S(n$0:destructor_scope::S*) injected [line 19, column 8]\n NULLIFY(&this); [line 19, column 8]\n EXIT_SCOPE(_,n$0,n$2,this); [line 19, column 8]\n APPLY_ABSTRACTION; [line 19, column 8]\n " shape="box"] "~S#S#destructor_scope#(9287491061312513566).aca6b266020a04cd52a80258435bda76_3" -> "~S#S#destructor_scope#(9287491061312513566).aca6b266020a04cd52a80258435bda76_2" ; @@ -210,11 +210,11 @@ digraph cfg { "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_2" [label="2: Exit destructor_scope::W___infer_inner_destructor_~W \n NULLIFY(&x); [line 34, column 3]\n NULLIFY(&y); [line 34, column 3]\n " color=yellow style=filled] -"__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_3" [label="3: Destruction \n n$0=*&this:destructor_scope::W* [line 34, column 3]\n _=*n$0.s:destructor_scope::S [line 34, column 3]\n n$6=_fun_destructor_scope::S_~S(n$0.s:destructor_scope::S*) [line 34, column 3]\n _=*n$0.y:destructor_scope::Y [line 34, column 3]\n n$4=_fun_destructor_scope::Y_~Y(n$0.y:destructor_scope::Y*) [line 34, column 3]\n _=*n$0.x:destructor_scope::X [line 34, column 3]\n n$2=_fun_destructor_scope::X_~X(n$0.x:destructor_scope::X*) [line 34, column 3]\n NULLIFY(&this); [line 34, column 3]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 34, column 3]\n APPLY_ABSTRACTION; [line 34, column 3]\n " shape="box"] +"__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_3" [label="3: Destruction \n n$0=*&this:destructor_scope::W* [line 34, column 3]\n _=*n$0.s:destructor_scope::S [line 34, column 3]\n n$6=_fun_destructor_scope::S_~S(n$0.s:destructor_scope::S*) injected [line 34, column 3]\n _=*n$0.y:destructor_scope::Y [line 34, column 3]\n n$4=_fun_destructor_scope::Y_~Y(n$0.y:destructor_scope::Y*) injected [line 34, column 3]\n _=*n$0.x:destructor_scope::X [line 34, column 3]\n n$2=_fun_destructor_scope::X_~X(n$0.x:destructor_scope::X*) injected [line 34, column 3]\n NULLIFY(&this); [line 34, column 3]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,this); [line 34, column 3]\n APPLY_ABSTRACTION; [line 34, column 3]\n " shape="box"] "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_3" -> "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_2" ; -"__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_4" [label="4: Destruction \n _=*&y:destructor_scope::Y [line 34, column 3]\n n$9=_fun_destructor_scope::Y_~Y(&y:destructor_scope::Y*) [line 34, column 3]\n _=*&x:destructor_scope::X [line 34, column 3]\n n$11=_fun_destructor_scope::X_~X(&x:destructor_scope::X*) [line 34, column 3]\n EXIT_SCOPE(_,_,n$9,n$11,y,x); [line 34, column 3]\n " shape="box"] +"__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_4" [label="4: Destruction \n _=*&y:destructor_scope::Y [line 34, column 3]\n n$9=_fun_destructor_scope::Y_~Y(&y:destructor_scope::Y*) injected [line 34, column 3]\n _=*&x:destructor_scope::X [line 34, column 3]\n n$11=_fun_destructor_scope::X_~X(&x:destructor_scope::X*) injected [line 34, column 3]\n EXIT_SCOPE(_,_,n$9,n$11,y,x); [line 34, column 3]\n " shape="box"] "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_4" -> "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_3" ; @@ -234,7 +234,7 @@ digraph cfg { "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_8" -> "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_6" ; -"__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_9" [label="9: Return Stmt \n _=*&x:destructor_scope::X [line 32, column 7]\n n$18=_fun_destructor_scope::X_~X(&x:destructor_scope::X*) [line 32, column 7]\n n$20=*&this:destructor_scope::W* [line 32, column 7]\n _=*n$20.s:destructor_scope::S [line 32, column 7]\n n$26=_fun_destructor_scope::S_~S(n$20.s:destructor_scope::S*) [line 32, column 7]\n _=*n$20.y:destructor_scope::Y [line 32, column 7]\n n$24=_fun_destructor_scope::Y_~Y(n$20.y:destructor_scope::Y*) [line 32, column 7]\n _=*n$20.x:destructor_scope::X [line 32, column 7]\n n$22=_fun_destructor_scope::X_~X(n$20.x:destructor_scope::X*) [line 32, column 7]\n NULLIFY(&this); [line 32, column 7]\n EXIT_SCOPE(_,_,_,_,n$18,n$20,n$22,n$24,n$26,x,this); [line 32, column 7]\n APPLY_ABSTRACTION; [line 32, column 7]\n " shape="box"] +"__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_9" [label="9: Return Stmt \n _=*&x:destructor_scope::X [line 32, column 7]\n n$18=_fun_destructor_scope::X_~X(&x:destructor_scope::X*) injected [line 32, column 7]\n n$20=*&this:destructor_scope::W* [line 32, column 7]\n _=*n$20.s:destructor_scope::S [line 32, column 7]\n n$26=_fun_destructor_scope::S_~S(n$20.s:destructor_scope::S*) injected [line 32, column 7]\n _=*n$20.y:destructor_scope::Y [line 32, column 7]\n n$24=_fun_destructor_scope::Y_~Y(n$20.y:destructor_scope::Y*) injected [line 32, column 7]\n _=*n$20.x:destructor_scope::X [line 32, column 7]\n n$22=_fun_destructor_scope::X_~X(n$20.x:destructor_scope::X*) injected [line 32, column 7]\n NULLIFY(&this); [line 32, column 7]\n EXIT_SCOPE(_,_,_,_,n$18,n$20,n$22,n$24,n$26,x,this); [line 32, column 7]\n APPLY_ABSTRACTION; [line 32, column 7]\n " shape="box"] "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_9" -> "__infer_inner_destructor_~W#W#destructor_scope#(7330614824551855498).609202c747c70b122a8a5785422f4f26_2" ; @@ -250,7 +250,7 @@ digraph cfg { "~W#W#destructor_scope#(7330614824551855498).f9ed98feeae8b94c6906cf3cd29688b3_2" [label="2: Exit destructor_scope::W_~W \n " color=yellow style=filled] -"~W#W#destructor_scope#(7330614824551855498).f9ed98feeae8b94c6906cf3cd29688b3_3" [label="3: Destruction \n n$0=*&this:destructor_scope::W* [line 34, column 3]\n _=*n$0:destructor_scope::W [line 34, column 3]\n n$2=_fun_destructor_scope::W___infer_inner_destructor_~W(n$0:destructor_scope::W*) [line 34, column 3]\n NULLIFY(&this); [line 34, column 3]\n EXIT_SCOPE(_,n$0,n$2,this); [line 34, column 3]\n APPLY_ABSTRACTION; [line 34, column 3]\n " shape="box"] +"~W#W#destructor_scope#(7330614824551855498).f9ed98feeae8b94c6906cf3cd29688b3_3" [label="3: Destruction \n n$0=*&this:destructor_scope::W* [line 34, column 3]\n _=*n$0:destructor_scope::W [line 34, column 3]\n n$2=_fun_destructor_scope::W___infer_inner_destructor_~W(n$0:destructor_scope::W*) injected [line 34, column 3]\n NULLIFY(&this); [line 34, column 3]\n EXIT_SCOPE(_,n$0,n$2,this); [line 34, column 3]\n APPLY_ABSTRACTION; [line 34, column 3]\n " shape="box"] "~W#W#destructor_scope#(7330614824551855498).f9ed98feeae8b94c6906cf3cd29688b3_3" -> "~W#W#destructor_scope#(7330614824551855498).f9ed98feeae8b94c6906cf3cd29688b3_2" ; @@ -282,7 +282,7 @@ digraph cfg { "~X#X#destructor_scope#(17752465063768331075).e9440dc26d00e6a493a0ae5908b3f399_2" [label="2: Exit destructor_scope::X_~X \n " color=yellow style=filled] -"~X#X#destructor_scope#(17752465063768331075).e9440dc26d00e6a493a0ae5908b3f399_3" [label="3: Destruction \n n$0=*&this:destructor_scope::X* [line 10, column 9]\n _=*n$0:destructor_scope::X [line 10, column 9]\n n$2=_fun_destructor_scope::X___infer_inner_destructor_~X(n$0:destructor_scope::X*) [line 10, column 9]\n NULLIFY(&this); [line 10, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 9]\n APPLY_ABSTRACTION; [line 10, column 9]\n " shape="box"] +"~X#X#destructor_scope#(17752465063768331075).e9440dc26d00e6a493a0ae5908b3f399_3" [label="3: Destruction \n n$0=*&this:destructor_scope::X* [line 10, column 9]\n _=*n$0:destructor_scope::X [line 10, column 9]\n n$2=_fun_destructor_scope::X___infer_inner_destructor_~X(n$0:destructor_scope::X*) injected [line 10, column 9]\n NULLIFY(&this); [line 10, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 9]\n APPLY_ABSTRACTION; [line 10, column 9]\n " shape="box"] "~X#X#destructor_scope#(17752465063768331075).e9440dc26d00e6a493a0ae5908b3f399_3" -> "~X#X#destructor_scope#(17752465063768331075).e9440dc26d00e6a493a0ae5908b3f399_2" ; @@ -307,7 +307,7 @@ digraph cfg { "~Y#Y#destructor_scope#(1552422738585060844).f631a64648f2fd67ee421a0da2149c2a_2" [label="2: Exit destructor_scope::Y_~Y \n " color=yellow style=filled] -"~Y#Y#destructor_scope#(1552422738585060844).f631a64648f2fd67ee421a0da2149c2a_3" [label="3: Destruction \n n$0=*&this:destructor_scope::Y* [line 14, column 9]\n _=*n$0:destructor_scope::Y [line 14, column 9]\n n$2=_fun_destructor_scope::Y___infer_inner_destructor_~Y(n$0:destructor_scope::Y*) [line 14, column 9]\n NULLIFY(&this); [line 14, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 14, column 9]\n APPLY_ABSTRACTION; [line 14, column 9]\n " shape="box"] +"~Y#Y#destructor_scope#(1552422738585060844).f631a64648f2fd67ee421a0da2149c2a_3" [label="3: Destruction \n n$0=*&this:destructor_scope::Y* [line 14, column 9]\n _=*n$0:destructor_scope::Y [line 14, column 9]\n n$2=_fun_destructor_scope::Y___infer_inner_destructor_~Y(n$0:destructor_scope::Y*) injected [line 14, column 9]\n NULLIFY(&this); [line 14, column 9]\n EXIT_SCOPE(_,n$0,n$2,this); [line 14, column 9]\n APPLY_ABSTRACTION; [line 14, column 9]\n " shape="box"] "~Y#Y#destructor_scope#(1552422738585060844).f631a64648f2fd67ee421a0da2149c2a_3" -> "~Y#Y#destructor_scope#(1552422738585060844).f631a64648f2fd67ee421a0da2149c2a_2" ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/destructors/simple_decl.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/destructors/simple_decl.cpp.dot index 5553ba175..70739f6a9 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/simple_decl.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/simple_decl.cpp.dot @@ -18,7 +18,7 @@ digraph cfg { "~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_2" [label="2: Exit A_~A \n " color=yellow style=filled] -"~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_3" [label="3: Destruction \n n$0=*&this:A* [line 10, column 17]\n _=*n$0:A [line 10, column 17]\n n$2=_fun_A___infer_inner_destructor_~A(n$0:A*) [line 10, column 17]\n NULLIFY(&this); [line 10, column 17]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 17]\n APPLY_ABSTRACTION; [line 10, column 17]\n " shape="box"] +"~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_3" [label="3: Destruction \n n$0=*&this:A* [line 10, column 17]\n _=*n$0:A [line 10, column 17]\n n$2=_fun_A___infer_inner_destructor_~A(n$0:A*) injected [line 10, column 17]\n NULLIFY(&this); [line 10, column 17]\n EXIT_SCOPE(_,n$0,n$2,this); [line 10, column 17]\n APPLY_ABSTRACTION; [line 10, column 17]\n " shape="box"] "~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_3" -> "~A#A#(5328378654181921475).cff4808f235f4b18d15ccd10cb1df4ff_2" ; @@ -40,7 +40,7 @@ digraph cfg { "~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_2" [label="2: Exit B_~B \n " color=yellow style=filled] -"~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_3" [label="3: Destruction \n n$0=*&this:B* [line 18, column 18]\n _=*n$0:B [line 18, column 18]\n n$2=_fun_B___infer_inner_destructor_~B(n$0:B*) [line 18, column 18]\n NULLIFY(&this); [line 18, column 18]\n EXIT_SCOPE(_,n$0,n$2,this); [line 18, column 18]\n APPLY_ABSTRACTION; [line 18, column 18]\n " shape="box"] +"~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_3" [label="3: Destruction \n n$0=*&this:B* [line 18, column 18]\n _=*n$0:B [line 18, column 18]\n n$2=_fun_B___infer_inner_destructor_~B(n$0:B*) injected [line 18, column 18]\n NULLIFY(&this); [line 18, column 18]\n EXIT_SCOPE(_,n$0,n$2,this); [line 18, column 18]\n APPLY_ABSTRACTION; [line 18, column 18]\n " shape="box"] "~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_3" -> "~B#B#(7876366742276079110).576ee7cb70a3e3453b3760583a94887e_2" ; diff --git a/infer/tests/codetoanalyze/cpp/frontend/initialization/init_list.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/initialization/init_list.cpp.dot index eb6940092..7543ccea7 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/initialization/init_list.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/initialization/init_list.cpp.dot @@ -41,7 +41,7 @@ digraph cfg { "record_init#init_list#9390182661430352809.a0bac2a3cf71c0b7c450ce49d030845f_2" [label="2: Exit init_list::record_init \n NULLIFY(&c); [line 42, column 1]\n NULLIFY(&y1); [line 42, column 1]\n NULLIFY(&x); [line 42, column 1]\n " color=yellow style=filled] -"record_init#init_list#9390182661430352809.a0bac2a3cf71c0b7c450ce49d030845f_3" [label="3: Destruction \n _=*&c:init_list::C [line 42, column 1]\n n$1=_fun_init_list::C_~C(&c:init_list::C*) [line 42, column 1]\n _=*&x:init_list::X [line 42, column 1]\n n$3=_fun_init_list::X_~X(&x:init_list::X*) [line 42, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x,c); [line 42, column 1]\n APPLY_ABSTRACTION; [line 42, column 1]\n " shape="box"] +"record_init#init_list#9390182661430352809.a0bac2a3cf71c0b7c450ce49d030845f_3" [label="3: Destruction \n _=*&c:init_list::C [line 42, column 1]\n n$1=_fun_init_list::C_~C(&c:init_list::C*) injected [line 42, column 1]\n _=*&x:init_list::X [line 42, column 1]\n n$3=_fun_init_list::X_~X(&x:init_list::X*) injected [line 42, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x,c); [line 42, column 1]\n APPLY_ABSTRACTION; [line 42, column 1]\n " shape="box"] "record_init#init_list#9390182661430352809.a0bac2a3cf71c0b7c450ce49d030845f_3" -> "record_init#init_list#9390182661430352809.a0bac2a3cf71c0b7c450ce49d030845f_2" ; @@ -87,7 +87,7 @@ digraph cfg { "zero_init_record#init_list#7364160241041626579.8baaea62666796dca7b4a7b11bf4f2bb_2" [label="2: Exit init_list::zero_init_record \n NULLIFY(&c); [line 34, column 1]\n " color=yellow style=filled] -"zero_init_record#init_list#7364160241041626579.8baaea62666796dca7b4a7b11bf4f2bb_3" [label="3: Destruction \n _=*&c:init_list::C [line 34, column 1]\n n$1=_fun_init_list::C_~C(&c:init_list::C*) [line 34, column 1]\n EXIT_SCOPE(_,n$1,c); [line 34, column 1]\n APPLY_ABSTRACTION; [line 34, column 1]\n " shape="box"] +"zero_init_record#init_list#7364160241041626579.8baaea62666796dca7b4a7b11bf4f2bb_3" [label="3: Destruction \n _=*&c:init_list::C [line 34, column 1]\n n$1=_fun_init_list::C_~C(&c:init_list::C*) injected [line 34, column 1]\n EXIT_SCOPE(_,n$1,c); [line 34, column 1]\n APPLY_ABSTRACTION; [line 34, column 1]\n " shape="box"] "zero_init_record#init_list#7364160241041626579.8baaea62666796dca7b4a7b11bf4f2bb_3" -> "zero_init_record#init_list#7364160241041626579.8baaea62666796dca7b4a7b11bf4f2bb_2" ; 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 91c59d661..e3b6196de 100644 --- a/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_2" [label="2: Exit binary_conditional::binaryConditional \n NULLIFY(&x); [line 23, column 1]\n NULLIFY(&a); [line 23, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$6); [line 23, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$5); [line 23, column 1]\n " color=yellow style=filled] -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_3" [label="3: Destruction \n _=*&x:binary_conditional::X [line 23, column 1]\n n$1=_fun_binary_conditional::X_~X(&x:binary_conditional::X*) [line 23, column 1]\n _=*&a:binary_conditional::X [line 23, column 1]\n n$3=_fun_binary_conditional::X_~X(&a:binary_conditional::X*) [line 23, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,a,x); [line 23, column 1]\n APPLY_ABSTRACTION; [line 23, column 1]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_3" [label="3: Destruction \n _=*&x:binary_conditional::X [line 23, column 1]\n n$1=_fun_binary_conditional::X_~X(&x:binary_conditional::X*) injected [line 23, column 1]\n _=*&a:binary_conditional::X [line 23, column 1]\n n$3=_fun_binary_conditional::X_~X(&a:binary_conditional::X*) injected [line 23, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,a,x); [line 23, column 1]\n APPLY_ABSTRACTION; [line 23, column 1]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_3" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_2" ; @@ -55,7 +55,7 @@ digraph cfg { "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_2" [label="2: Exit binary_conditional::conditional \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 28, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$13); [line 28, column 1]\n NULLIFY(&a); [line 28, column 1]\n NULLIFY(&x); [line 28, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$5); [line 28, column 1]\n " color=yellow style=filled] -"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_3" [label="3: Destruction \n _=*&x:binary_conditional::X [line 28, column 1]\n n$1=_fun_binary_conditional::X_~X(&x:binary_conditional::X*) [line 28, column 1]\n _=*&a:binary_conditional::X [line 28, column 1]\n n$3=_fun_binary_conditional::X_~X(&a:binary_conditional::X*) [line 28, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x,a); [line 28, column 1]\n APPLY_ABSTRACTION; [line 28, column 1]\n " shape="box"] +"conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_3" [label="3: Destruction \n _=*&x:binary_conditional::X [line 28, column 1]\n n$1=_fun_binary_conditional::X_~X(&x:binary_conditional::X*) injected [line 28, column 1]\n _=*&a:binary_conditional::X [line 28, column 1]\n n$3=_fun_binary_conditional::X_~X(&a:binary_conditional::X*) injected [line 28, column 1]\n EXIT_SCOPE(_,_,n$1,n$3,x,a); [line 28, column 1]\n APPLY_ABSTRACTION; [line 28, column 1]\n " shape="box"] "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_3" -> "conditional#binary_conditional#4777209206611953450.41decaebdce6325bd31c1d47d4647c45_2" ; @@ -99,7 +99,7 @@ digraph cfg { "getX#binary_conditional(class binary_conditional::X)#7708042186122353096.8825a5a3afa327848f6dcf77ec0e3f60_2" [label="2: Exit binary_conditional::getX \n NULLIFY(&x); [line 17, column 1]\n " color=yellow style=filled] -"getX#binary_conditional(class binary_conditional::X)#7708042186122353096.8825a5a3afa327848f6dcf77ec0e3f60_3" [label="3: Return Stmt \n n$0=*&__return_param:binary_conditional::X* [line 16, column 3]\n n$1=_fun_binary_conditional::X_X(n$0:binary_conditional::X*,&x:binary_conditional::X&) [line 16, column 10]\n _=*&x:binary_conditional::X [line 16, column 10]\n n$3=_fun_binary_conditional::X_~X(&x:binary_conditional::X*) [line 16, column 10]\n NULLIFY(&__return_param); [line 16, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 16, column 10]\n APPLY_ABSTRACTION; [line 16, column 10]\n " shape="box"] +"getX#binary_conditional(class binary_conditional::X)#7708042186122353096.8825a5a3afa327848f6dcf77ec0e3f60_3" [label="3: Return Stmt \n n$0=*&__return_param:binary_conditional::X* [line 16, column 3]\n n$1=_fun_binary_conditional::X_X(n$0:binary_conditional::X*,&x:binary_conditional::X&) [line 16, column 10]\n _=*&x:binary_conditional::X [line 16, column 10]\n n$3=_fun_binary_conditional::X_~X(&x:binary_conditional::X*) injected [line 16, column 10]\n NULLIFY(&__return_param); [line 16, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 16, column 10]\n APPLY_ABSTRACTION; [line 16, column 10]\n " shape="box"] "getX#binary_conditional(class binary_conditional::X)#7708042186122353096.8825a5a3afa327848f6dcf77ec0e3f60_3" -> "getX#binary_conditional(class binary_conditional::X)#7708042186122353096.8825a5a3afa327848f6dcf77ec0e3f60_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_init.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_init.cpp.dot index 0299290c8..eb55e6b77 100644 --- a/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_init.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/constructors/constructor_init.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "delegate_constr_f2_div0#13553474688240246893.0ce7e6b119d9277f847a079378cf30a1_2" [label="2: Exit delegate_constr_f2_div0 \n NULLIFY(&b); [line 50, column 1]\n " color=yellow style=filled] -"delegate_constr_f2_div0#13553474688240246893.0ce7e6b119d9277f847a079378cf30a1_3" [label="3: Return Stmt \n n$0=*&b.f2:int [line 49, column 14]\n *&return:int=(1 / n$0) [line 49, column 3]\n _=*&b:B [line 49, column 16]\n n$2=_fun_B_~B(&b:B*) [line 49, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 49, column 16]\n APPLY_ABSTRACTION; [line 49, column 16]\n " shape="box"] +"delegate_constr_f2_div0#13553474688240246893.0ce7e6b119d9277f847a079378cf30a1_3" [label="3: Return Stmt \n n$0=*&b.f2:int [line 49, column 14]\n *&return:int=(1 / n$0) [line 49, column 3]\n _=*&b:B [line 49, column 16]\n n$2=_fun_B_~B(&b:B*) injected [line 49, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 49, column 16]\n APPLY_ABSTRACTION; [line 49, column 16]\n " shape="box"] "delegate_constr_f2_div0#13553474688240246893.0ce7e6b119d9277f847a079378cf30a1_3" -> "delegate_constr_f2_div0#13553474688240246893.0ce7e6b119d9277f847a079378cf30a1_2" ; @@ -26,7 +26,7 @@ digraph cfg { "delegate_constr_f_div0#5612932889167727636.f7eff0d7a58a3e6a6faddf562531b7f4_2" [label="2: Exit delegate_constr_f_div0 \n NULLIFY(&b); [line 44, column 1]\n " color=yellow style=filled] -"delegate_constr_f_div0#5612932889167727636.f7eff0d7a58a3e6a6faddf562531b7f4_3" [label="3: Return Stmt \n n$0=*&b.f:int [line 43, column 14]\n *&return:int=(1 / n$0) [line 43, column 3]\n _=*&b:B [line 43, column 16]\n n$2=_fun_B_~B(&b:B*) [line 43, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 43, column 16]\n APPLY_ABSTRACTION; [line 43, column 16]\n " shape="box"] +"delegate_constr_f_div0#5612932889167727636.f7eff0d7a58a3e6a6faddf562531b7f4_3" [label="3: Return Stmt \n n$0=*&b.f:int [line 43, column 14]\n *&return:int=(1 / n$0) [line 43, column 3]\n _=*&b:B [line 43, column 16]\n n$2=_fun_B_~B(&b:B*) injected [line 43, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 43, column 16]\n APPLY_ABSTRACTION; [line 43, column 16]\n " shape="box"] "delegate_constr_f_div0#5612932889167727636.f7eff0d7a58a3e6a6faddf562531b7f4_3" -> "delegate_constr_f_div0#5612932889167727636.f7eff0d7a58a3e6a6faddf562531b7f4_2" ; @@ -45,7 +45,7 @@ digraph cfg { "f2_div0#7534053771484990951.dd0b0233a011b5600e68aef2c840bcef_2" [label="2: Exit f2_div0 \n NULLIFY(&b); [line 28, column 1]\n " color=yellow style=filled] -"f2_div0#7534053771484990951.dd0b0233a011b5600e68aef2c840bcef_3" [label="3: Return Stmt \n n$0=*&b.f2:int [line 27, column 14]\n *&return:int=(1 / n$0) [line 27, column 3]\n _=*&b:B [line 27, column 16]\n n$2=_fun_B_~B(&b:B*) [line 27, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 27, column 16]\n APPLY_ABSTRACTION; [line 27, column 16]\n " shape="box"] +"f2_div0#7534053771484990951.dd0b0233a011b5600e68aef2c840bcef_3" [label="3: Return Stmt \n n$0=*&b.f2:int [line 27, column 14]\n *&return:int=(1 / n$0) [line 27, column 3]\n _=*&b:B [line 27, column 16]\n n$2=_fun_B_~B(&b:B*) injected [line 27, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 27, column 16]\n APPLY_ABSTRACTION; [line 27, column 16]\n " shape="box"] "f2_div0#7534053771484990951.dd0b0233a011b5600e68aef2c840bcef_3" -> "f2_div0#7534053771484990951.dd0b0233a011b5600e68aef2c840bcef_2" ; @@ -60,7 +60,7 @@ digraph cfg { "f_div0#425664895438337450.ac4424ba5cea731e26a9fe2fb1b0b687_2" [label="2: Exit f_div0 \n NULLIFY(&b); [line 33, column 1]\n " color=yellow style=filled] -"f_div0#425664895438337450.ac4424ba5cea731e26a9fe2fb1b0b687_3" [label="3: Return Stmt \n n$0=*&b.f:int [line 32, column 14]\n *&return:int=(1 / n$0) [line 32, column 3]\n _=*&b:B [line 32, column 16]\n n$2=_fun_B_~B(&b:B*) [line 32, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 32, column 16]\n APPLY_ABSTRACTION; [line 32, column 16]\n " shape="box"] +"f_div0#425664895438337450.ac4424ba5cea731e26a9fe2fb1b0b687_3" [label="3: Return Stmt \n n$0=*&b.f:int [line 32, column 14]\n *&return:int=(1 / n$0) [line 32, column 3]\n _=*&b:B [line 32, column 16]\n n$2=_fun_B_~B(&b:B*) injected [line 32, column 16]\n EXIT_SCOPE(_,n$0,n$2,b); [line 32, column 16]\n APPLY_ABSTRACTION; [line 32, column 16]\n " shape="box"] "f_div0#425664895438337450.ac4424ba5cea731e26a9fe2fb1b0b687_3" -> "f_div0#425664895438337450.ac4424ba5cea731e26a9fe2fb1b0b687_2" ; @@ -75,7 +75,7 @@ digraph cfg { "f_f2_div1#1916649103065485619.7e2fb5eeaa415affd6bdd86573d188de_2" [label="2: Exit f_f2_div1 \n NULLIFY(&b); [line 58, column 1]\n " color=yellow style=filled] -"f_f2_div1#1916649103065485619.7e2fb5eeaa415affd6bdd86573d188de_3" [label="3: Return Stmt \n n$0=*&v:int [line 57, column 10]\n n$1=*&v2:int [line 57, column 14]\n *&return:int=(n$0 + n$1) [line 57, column 3]\n _=*&b:B [line 57, column 14]\n n$3=_fun_B_~B(&b:B*) [line 57, column 14]\n NULLIFY(&v); [line 57, column 14]\n NULLIFY(&v2); [line 57, column 14]\n EXIT_SCOPE(_,n$0,n$1,n$3,b,v,v2); [line 57, column 14]\n APPLY_ABSTRACTION; [line 57, column 14]\n " shape="box"] +"f_f2_div1#1916649103065485619.7e2fb5eeaa415affd6bdd86573d188de_3" [label="3: Return Stmt \n n$0=*&v:int [line 57, column 10]\n n$1=*&v2:int [line 57, column 14]\n *&return:int=(n$0 + n$1) [line 57, column 3]\n _=*&b:B [line 57, column 14]\n n$3=_fun_B_~B(&b:B*) injected [line 57, column 14]\n NULLIFY(&v); [line 57, column 14]\n NULLIFY(&v2); [line 57, column 14]\n EXIT_SCOPE(_,n$0,n$1,n$3,b,v,v2); [line 57, column 14]\n APPLY_ABSTRACTION; [line 57, column 14]\n " shape="box"] "f_f2_div1#1916649103065485619.7e2fb5eeaa415affd6bdd86573d188de_3" -> "f_f2_div1#1916649103065485619.7e2fb5eeaa415affd6bdd86573d188de_2" ; @@ -102,7 +102,7 @@ digraph cfg { "t_div0#3531430030893775324.a762c245df414e083e61674c93898055_2" [label="2: Exit t_div0 \n NULLIFY(&b); [line 38, column 1]\n " color=yellow style=filled] -"t_div0#3531430030893775324.a762c245df414e083e61674c93898055_3" [label="3: Return Stmt \n n$0=*&b.t.v:int [line 37, column 14]\n *&return:int=(1 / n$0) [line 37, column 3]\n _=*&b:B [line 37, column 18]\n n$2=_fun_B_~B(&b:B*) [line 37, column 18]\n EXIT_SCOPE(_,n$0,n$2,b); [line 37, column 18]\n APPLY_ABSTRACTION; [line 37, column 18]\n " shape="box"] +"t_div0#3531430030893775324.a762c245df414e083e61674c93898055_3" [label="3: Return Stmt \n n$0=*&b.t.v:int [line 37, column 14]\n *&return:int=(1 / n$0) [line 37, column 3]\n _=*&b:B [line 37, column 18]\n n$2=_fun_B_~B(&b:B*) injected [line 37, column 18]\n EXIT_SCOPE(_,n$0,n$2,b); [line 37, column 18]\n APPLY_ABSTRACTION; [line 37, column 18]\n " shape="box"] "t_div0#3531430030893775324.a762c245df414e083e61674c93898055_3" -> "t_div0#3531430030893775324.a762c245df414e083e61674c93898055_2" ; 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 31d07a597..ac820fc3b 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 @@ -7,7 +7,7 @@ digraph cfg { "copyX_div0#copy_move_constructor#7555826423954612298.1fd45599e2fc3ce471d7d474aa615bcb_2" [label="2: Exit copy_move_constructor::copyX_div0 \n NULLIFY(&x2); [line 44, column 1]\n NULLIFY(&x1); [line 44, column 1]\n " color=yellow style=filled] -"copyX_div0#copy_move_constructor#7555826423954612298.1fd45599e2fc3ce471d7d474aa615bcb_3" [label="3: Return Stmt \n n$0=*&x2.f:int [line 43, column 14]\n *&return:int=(1 / n$0) [line 43, column 3]\n _=*&x2:copy_move_constructor::X [line 43, column 17]\n n$2=_fun_copy_move_constructor::X_~X(&x2:copy_move_constructor::X*) [line 43, column 17]\n _=*&x1:copy_move_constructor::X [line 43, column 17]\n n$4=_fun_copy_move_constructor::X_~X(&x1:copy_move_constructor::X*) [line 43, column 17]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,x1,x2); [line 43, column 17]\n APPLY_ABSTRACTION; [line 43, column 17]\n " shape="box"] +"copyX_div0#copy_move_constructor#7555826423954612298.1fd45599e2fc3ce471d7d474aa615bcb_3" [label="3: Return Stmt \n n$0=*&x2.f:int [line 43, column 14]\n *&return:int=(1 / n$0) [line 43, column 3]\n _=*&x2:copy_move_constructor::X [line 43, column 17]\n n$2=_fun_copy_move_constructor::X_~X(&x2:copy_move_constructor::X*) injected [line 43, column 17]\n _=*&x1:copy_move_constructor::X [line 43, column 17]\n n$4=_fun_copy_move_constructor::X_~X(&x1:copy_move_constructor::X*) injected [line 43, column 17]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,x1,x2); [line 43, column 17]\n APPLY_ABSTRACTION; [line 43, column 17]\n " shape="box"] "copyX_div0#copy_move_constructor#7555826423954612298.1fd45599e2fc3ce471d7d474aa615bcb_3" -> "copyX_div0#copy_move_constructor#7555826423954612298.1fd45599e2fc3ce471d7d474aa615bcb_2" ; @@ -30,7 +30,7 @@ digraph cfg { "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_2" [label="2: Exit copy_move_constructor::copyX_moveX_div1 \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 70, column 1]\n NULLIFY(&x1); [line 70, column 1]\n NULLIFY(&x2); [line 70, column 1]\n " color=yellow style=filled] -"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_3" [label="3: Return Stmt \n n$0=*&d1:int [line 69, column 10]\n n$1=*&d2:int [line 69, column 15]\n *&return:int=(n$0 + n$1) [line 69, column 3]\n _=*&x2:copy_move_constructor::X [line 69, column 15]\n n$3=_fun_copy_move_constructor::X_~X(&x2:copy_move_constructor::X*) [line 69, column 15]\n _=*&x1:copy_move_constructor::X [line 69, column 15]\n n$5=_fun_copy_move_constructor::X_~X(&x1:copy_move_constructor::X*) [line 69, column 15]\n NULLIFY(&d1); [line 69, column 15]\n NULLIFY(&d2); [line 69, column 15]\n EXIT_SCOPE(_,_,n$0,n$1,n$3,n$5,d1,x2,x1,d2); [line 69, column 15]\n APPLY_ABSTRACTION; [line 69, column 15]\n " shape="box"] +"copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_3" [label="3: Return Stmt \n n$0=*&d1:int [line 69, column 10]\n n$1=*&d2:int [line 69, column 15]\n *&return:int=(n$0 + n$1) [line 69, column 3]\n _=*&x2:copy_move_constructor::X [line 69, column 15]\n n$3=_fun_copy_move_constructor::X_~X(&x2:copy_move_constructor::X*) injected [line 69, column 15]\n _=*&x1:copy_move_constructor::X [line 69, column 15]\n n$5=_fun_copy_move_constructor::X_~X(&x1:copy_move_constructor::X*) injected [line 69, column 15]\n NULLIFY(&d1); [line 69, column 15]\n NULLIFY(&d2); [line 69, column 15]\n EXIT_SCOPE(_,_,n$0,n$1,n$3,n$5,d1,x2,x1,d2); [line 69, column 15]\n APPLY_ABSTRACTION; [line 69, column 15]\n " shape="box"] "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_3" -> "copyX_moveX_div1#copy_move_constructor#6853813819184662211.00e91897e7d9fcfa93de911bba9a1399_2" ; @@ -61,7 +61,7 @@ digraph cfg { "copyY_div0#copy_move_constructor#17079397845524781987.61211209ec1f961073f3adafcd080bfb_2" [label="2: Exit copy_move_constructor::copyY_div0 \n NULLIFY(&y1); [line 53, column 1]\n NULLIFY(&y2); [line 53, column 1]\n " color=yellow style=filled] -"copyY_div0#copy_move_constructor#17079397845524781987.61211209ec1f961073f3adafcd080bfb_3" [label="3: Return Stmt \n n$0=*&y2.f:int [line 52, column 14]\n *&return:int=(1 / n$0) [line 52, column 3]\n _=*&y2:copy_move_constructor::Y [line 52, column 17]\n n$2=_fun_copy_move_constructor::Y_~Y(&y2:copy_move_constructor::Y*) [line 52, column 17]\n _=*&y1:copy_move_constructor::Y [line 52, column 17]\n n$4=_fun_copy_move_constructor::Y_~Y(&y1:copy_move_constructor::Y*) [line 52, column 17]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,y2,y1); [line 52, column 17]\n APPLY_ABSTRACTION; [line 52, column 17]\n " shape="box"] +"copyY_div0#copy_move_constructor#17079397845524781987.61211209ec1f961073f3adafcd080bfb_3" [label="3: Return Stmt \n n$0=*&y2.f:int [line 52, column 14]\n *&return:int=(1 / n$0) [line 52, column 3]\n _=*&y2:copy_move_constructor::Y [line 52, column 17]\n n$2=_fun_copy_move_constructor::Y_~Y(&y2:copy_move_constructor::Y*) injected [line 52, column 17]\n _=*&y1:copy_move_constructor::Y [line 52, column 17]\n n$4=_fun_copy_move_constructor::Y_~Y(&y1:copy_move_constructor::Y*) injected [line 52, column 17]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,y2,y1); [line 52, column 17]\n APPLY_ABSTRACTION; [line 52, column 17]\n " shape="box"] "copyY_div0#copy_move_constructor#17079397845524781987.61211209ec1f961073f3adafcd080bfb_3" -> "copyY_div0#copy_move_constructor#17079397845524781987.61211209ec1f961073f3adafcd080bfb_2" ; @@ -84,7 +84,7 @@ digraph cfg { "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_2" [label="2: Exit copy_move_constructor::copyY_moveY_div1 \n NULLIFY(&y2); [line 79, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 79, column 1]\n NULLIFY(&y1); [line 79, column 1]\n " color=yellow style=filled] -"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_3" [label="3: Return Stmt \n n$0=*&d1:int [line 78, column 10]\n n$1=*&d2:int [line 78, column 15]\n *&return:int=(n$0 + n$1) [line 78, column 3]\n _=*&y2:copy_move_constructor::Y [line 78, column 15]\n n$3=_fun_copy_move_constructor::Y_~Y(&y2:copy_move_constructor::Y*) [line 78, column 15]\n _=*&y1:copy_move_constructor::Y [line 78, column 15]\n n$5=_fun_copy_move_constructor::Y_~Y(&y1:copy_move_constructor::Y*) [line 78, column 15]\n NULLIFY(&d1); [line 78, column 15]\n NULLIFY(&d2); [line 78, column 15]\n EXIT_SCOPE(_,_,n$0,n$1,n$3,n$5,d1,y1,d2,y2); [line 78, column 15]\n APPLY_ABSTRACTION; [line 78, column 15]\n " shape="box"] +"copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_3" [label="3: Return Stmt \n n$0=*&d1:int [line 78, column 10]\n n$1=*&d2:int [line 78, column 15]\n *&return:int=(n$0 + n$1) [line 78, column 3]\n _=*&y2:copy_move_constructor::Y [line 78, column 15]\n n$3=_fun_copy_move_constructor::Y_~Y(&y2:copy_move_constructor::Y*) injected [line 78, column 15]\n _=*&y1:copy_move_constructor::Y [line 78, column 15]\n n$5=_fun_copy_move_constructor::Y_~Y(&y1:copy_move_constructor::Y*) injected [line 78, column 15]\n NULLIFY(&d1); [line 78, column 15]\n NULLIFY(&d2); [line 78, column 15]\n EXIT_SCOPE(_,_,n$0,n$1,n$3,n$5,d1,y1,d2,y2); [line 78, column 15]\n APPLY_ABSTRACTION; [line 78, column 15]\n " shape="box"] "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_3" -> "copyY_moveY_div1#copy_move_constructor#5827233588222911615.5716e8b7acbd3ff43f18c7c5954c6565_2" ; @@ -115,7 +115,7 @@ digraph cfg { "getX#copy_move_constructor(class copy_move_constructor::X)#2211685783611424509.3ed1bf77442fb4e47b3afdd1dd669b7a_2" [label="2: Exit copy_move_constructor::getX \n NULLIFY(&x); [line 31, column 1]\n " color=yellow style=filled] -"getX#copy_move_constructor(class copy_move_constructor::X)#2211685783611424509.3ed1bf77442fb4e47b3afdd1dd669b7a_3" [label="3: Return Stmt \n n$0=*&__return_param:copy_move_constructor::X* [line 30, column 3]\n n$1=_fun_copy_move_constructor::X_X(n$0:copy_move_constructor::X*,&x:copy_move_constructor::X&) [line 30, column 10]\n _=*&x:copy_move_constructor::X [line 30, column 10]\n n$3=_fun_copy_move_constructor::X_~X(&x:copy_move_constructor::X*) [line 30, column 10]\n NULLIFY(&__return_param); [line 30, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,x); [line 30, column 10]\n APPLY_ABSTRACTION; [line 30, column 10]\n " shape="box"] +"getX#copy_move_constructor(class copy_move_constructor::X)#2211685783611424509.3ed1bf77442fb4e47b3afdd1dd669b7a_3" [label="3: Return Stmt \n n$0=*&__return_param:copy_move_constructor::X* [line 30, column 3]\n n$1=_fun_copy_move_constructor::X_X(n$0:copy_move_constructor::X*,&x:copy_move_constructor::X&) [line 30, column 10]\n _=*&x:copy_move_constructor::X [line 30, column 10]\n n$3=_fun_copy_move_constructor::X_~X(&x:copy_move_constructor::X*) injected [line 30, column 10]\n NULLIFY(&__return_param); [line 30, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,x); [line 30, column 10]\n APPLY_ABSTRACTION; [line 30, column 10]\n " shape="box"] "getX#copy_move_constructor(class copy_move_constructor::X)#2211685783611424509.3ed1bf77442fb4e47b3afdd1dd669b7a_3" -> "getX#copy_move_constructor(class copy_move_constructor::X)#2211685783611424509.3ed1bf77442fb4e47b3afdd1dd669b7a_2" ; @@ -134,7 +134,7 @@ digraph cfg { "getY#copy_move_constructor(class copy_move_constructor::Y)#1712013823822590270.ad9dd85c67bb69fcd76f4c34bc426f28_2" [label="2: Exit copy_move_constructor::getY \n NULLIFY(&y); [line 37, column 1]\n " color=yellow style=filled] -"getY#copy_move_constructor(class copy_move_constructor::Y)#1712013823822590270.ad9dd85c67bb69fcd76f4c34bc426f28_3" [label="3: Return Stmt \n n$0=*&__return_param:copy_move_constructor::Y* [line 36, column 3]\n n$1=_fun_copy_move_constructor::Y_Y(n$0:copy_move_constructor::Y*,&y:copy_move_constructor::Y&) [line 36, column 10]\n _=*&y:copy_move_constructor::Y [line 36, column 10]\n n$3=_fun_copy_move_constructor::Y_~Y(&y:copy_move_constructor::Y*) [line 36, column 10]\n NULLIFY(&__return_param); [line 36, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,y,__return_param); [line 36, column 10]\n APPLY_ABSTRACTION; [line 36, column 10]\n " shape="box"] +"getY#copy_move_constructor(class copy_move_constructor::Y)#1712013823822590270.ad9dd85c67bb69fcd76f4c34bc426f28_3" [label="3: Return Stmt \n n$0=*&__return_param:copy_move_constructor::Y* [line 36, column 3]\n n$1=_fun_copy_move_constructor::Y_Y(n$0:copy_move_constructor::Y*,&y:copy_move_constructor::Y&) [line 36, column 10]\n _=*&y:copy_move_constructor::Y [line 36, column 10]\n n$3=_fun_copy_move_constructor::Y_~Y(&y:copy_move_constructor::Y*) injected [line 36, column 10]\n NULLIFY(&__return_param); [line 36, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,y,__return_param); [line 36, column 10]\n APPLY_ABSTRACTION; [line 36, column 10]\n " shape="box"] "getY#copy_move_constructor(class copy_move_constructor::Y)#1712013823822590270.ad9dd85c67bb69fcd76f4c34bc426f28_3" -> "getY#copy_move_constructor(class copy_move_constructor::Y)#1712013823822590270.ad9dd85c67bb69fcd76f4c34bc426f28_2" ; @@ -175,7 +175,7 @@ digraph cfg { "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_2" [label="2: Exit copy_move_constructor::moveY_moveY_copyY_div0 \n NULLIFY(&y2); [line 61, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$8); [line 61, column 1]\n NULLIFY(&y1); [line 61, column 1]\n " color=yellow style=filled] -"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_3" [label="3: Return Stmt \n n$0=*&y2.f:int [line 60, column 14]\n *&return:int=(1 / n$0) [line 60, column 3]\n _=*&y2:copy_move_constructor::Y [line 60, column 17]\n n$2=_fun_copy_move_constructor::Y_~Y(&y2:copy_move_constructor::Y*) [line 60, column 17]\n _=*&y1:copy_move_constructor::Y [line 60, column 17]\n n$4=_fun_copy_move_constructor::Y_~Y(&y1:copy_move_constructor::Y*) [line 60, column 17]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,y1,y2); [line 60, column 17]\n APPLY_ABSTRACTION; [line 60, column 17]\n " shape="box"] +"moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_3" [label="3: Return Stmt \n n$0=*&y2.f:int [line 60, column 14]\n *&return:int=(1 / n$0) [line 60, column 3]\n _=*&y2:copy_move_constructor::Y [line 60, column 17]\n n$2=_fun_copy_move_constructor::Y_~Y(&y2:copy_move_constructor::Y*) injected [line 60, column 17]\n _=*&y1:copy_move_constructor::Y [line 60, column 17]\n n$4=_fun_copy_move_constructor::Y_~Y(&y1:copy_move_constructor::Y*) injected [line 60, column 17]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,y1,y2); [line 60, column 17]\n APPLY_ABSTRACTION; [line 60, column 17]\n " shape="box"] "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_3" -> "moveY_moveY_copyY_div0#copy_move_constructor#11319351724516006746.d5d5d96d98dcf1c634b647be30001d2e_2" ; 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 01d3b64e7..d5ef92491 100644 --- a/infer/tests/codetoanalyze/cpp/shared/constructors/temp_object.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/constructors/temp_object.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_2" [label="2: Exit temp_object::assign_temp_div0 \n NULLIFY(&x); [line 29, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$5); [line 29, column 1]\n " color=yellow style=filled] -"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_3" [label="3: Return Stmt \n _=*&x:temp_object::X [line 28, column 10]\n n$1=_fun_temp_object::X_div(&x:temp_object::X&) [line 28, column 10]\n *&return:int=n$1 [line 28, column 3]\n _=*&x:temp_object::X [line 28, column 16]\n n$3=_fun_temp_object::X_~X(&x:temp_object::X*) [line 28, column 16]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 28, column 16]\n APPLY_ABSTRACTION; [line 28, column 16]\n " shape="box"] +"assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_3" [label="3: Return Stmt \n _=*&x:temp_object::X [line 28, column 10]\n n$1=_fun_temp_object::X_div(&x:temp_object::X&) [line 28, column 10]\n *&return:int=n$1 [line 28, column 3]\n _=*&x:temp_object::X [line 28, column 16]\n n$3=_fun_temp_object::X_~X(&x:temp_object::X*) injected [line 28, column 16]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 28, column 16]\n APPLY_ABSTRACTION; [line 28, column 16]\n " shape="box"] "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_3" -> "assign_temp_div0#temp_object#6618523570396537240.fa2055065ca23850cee50c855993cd3a_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot index b3b66e0f3..d796113d0 100644 --- a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_2" [label="2: Exit bar \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$5); [line 14, column 1]\n NULLIFY(&func); [line 14, column 1]\n " color=yellow style=filled] -"bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_3" [label="3: Return Stmt \n n$1=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15_operator()(&func:bar::lambda_shared_lambda_lambda1.cpp:9:15&) [line 13, column 14]\n *&return:int=(7 / n$1) [line 13, column 3]\n _=*&func:bar::lambda_shared_lambda_lambda1.cpp:9:15 [line 13, column 19]\n n$3=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15_~(&func:bar::lambda_shared_lambda_lambda1.cpp:9:15*) [line 13, column 19]\n EXIT_SCOPE(_,n$1,n$3,func); [line 13, column 19]\n APPLY_ABSTRACTION; [line 13, column 19]\n " shape="box"] +"bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_3" [label="3: Return Stmt \n n$1=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15_operator()(&func:bar::lambda_shared_lambda_lambda1.cpp:9:15&) [line 13, column 14]\n *&return:int=(7 / n$1) [line 13, column 3]\n _=*&func:bar::lambda_shared_lambda_lambda1.cpp:9:15 [line 13, column 19]\n n$3=_fun_bar::lambda_shared_lambda_lambda1.cpp:9:15_~(&func:bar::lambda_shared_lambda_lambda1.cpp:9:15*) injected [line 13, column 19]\n EXIT_SCOPE(_,n$1,n$3,func); [line 13, column 19]\n APPLY_ABSTRACTION; [line 13, column 19]\n " shape="box"] "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_3" -> "bar#13629960763458822780.27859d4aca4c920a20241f1b78082005_2" ; @@ -41,7 +41,7 @@ digraph cfg { "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_2" [label="2: Exit foo \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$7); [line 20, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$11); [line 20, column 1]\n NULLIFY(&unused); [line 20, column 1]\n NULLIFY(&y); [line 20, column 1]\n " color=yellow style=filled] -"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_3" [label="3: Return Stmt \n n$1=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12_operator()(&y:foo::lambda_shared_lambda_lambda1.cpp:18:12&,3:int) [line 19, column 19]\n *&return:int=(5 / (4 - n$1)) [line 19, column 3]\n _=*&y:foo::lambda_shared_lambda_lambda1.cpp:18:12 [line 19, column 23]\n n$3=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12_~(&y:foo::lambda_shared_lambda_lambda1.cpp:18:12*) [line 19, column 23]\n _=*&unused:foo::lambda_shared_lambda_lambda1.cpp:17:17 [line 19, column 23]\n n$5=_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17_~(&unused:foo::lambda_shared_lambda_lambda1.cpp:17:17*) [line 19, column 23]\n EXIT_SCOPE(_,_,n$1,n$3,n$5,y,unused); [line 19, column 23]\n APPLY_ABSTRACTION; [line 19, column 23]\n " shape="box"] +"foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_3" [label="3: Return Stmt \n n$1=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12_operator()(&y:foo::lambda_shared_lambda_lambda1.cpp:18:12&,3:int) [line 19, column 19]\n *&return:int=(5 / (4 - n$1)) [line 19, column 3]\n _=*&y:foo::lambda_shared_lambda_lambda1.cpp:18:12 [line 19, column 23]\n n$3=_fun_foo::lambda_shared_lambda_lambda1.cpp:18:12_~(&y:foo::lambda_shared_lambda_lambda1.cpp:18:12*) injected [line 19, column 23]\n _=*&unused:foo::lambda_shared_lambda_lambda1.cpp:17:17 [line 19, column 23]\n n$5=_fun_foo::lambda_shared_lambda_lambda1.cpp:17:17_~(&unused:foo::lambda_shared_lambda_lambda1.cpp:17:17*) injected [line 19, column 23]\n EXIT_SCOPE(_,_,n$1,n$3,n$5,y,unused); [line 19, column 23]\n APPLY_ABSTRACTION; [line 19, column 23]\n " shape="box"] "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_3" -> "foo#972162870672026475.86d7db357d6a36081d09067fb38ce85e_2" ; @@ -60,7 +60,7 @@ digraph cfg { "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_2" [label="2: Exit fooOK \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$5); [line 26, column 1]\n NULLIFY(&y); [line 26, column 1]\n " color=yellow style=filled] -"fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_3" [label="3: Return Stmt \n n$1=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12_operator()(&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12&,3:int) [line 25, column 19]\n *&return:int=(5 / (4 - n$1)) [line 25, column 3]\n _=*&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12 [line 25, column 23]\n n$3=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12_~(&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12*) [line 25, column 23]\n EXIT_SCOPE(_,n$1,n$3,y); [line 25, column 23]\n APPLY_ABSTRACTION; [line 25, column 23]\n " shape="box"] +"fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_3" [label="3: Return Stmt \n n$1=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12_operator()(&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12&,3:int) [line 25, column 19]\n *&return:int=(5 / (4 - n$1)) [line 25, column 3]\n _=*&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12 [line 25, column 23]\n n$3=_fun_fooOK::lambda_shared_lambda_lambda1.cpp:24:12_~(&y:fooOK::lambda_shared_lambda_lambda1.cpp:24:12*) injected [line 25, column 23]\n EXIT_SCOPE(_,n$1,n$3,y); [line 25, column 23]\n APPLY_ABSTRACTION; [line 25, column 23]\n " shape="box"] "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_3" -> "fooOK#5521302935427608539.9c36ec052efdd50972817d895666852a_2" ; @@ -136,7 +136,7 @@ digraph cfg { "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_2" [label="2: Exit struct_capture \n NULLIFY(&f); [line 79, column 1]\n NULLIFY(&x); [line 79, column 1]\n NULLIFY(&y); [line 79, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$9); [line 79, column 1]\n " color=yellow style=filled] -"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_3" [label="3: Return Stmt \n n$1=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12_operator()(&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12&) [line 78, column 10]\n *&return:int=n$1 [line 78, column 3]\n _=*&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12 [line 78, column 12]\n n$3=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12_~(&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*) [line 78, column 12]\n _=*&y:SomeStruct [line 78, column 12]\n n$5=_fun_SomeStruct_~SomeStruct(&y:SomeStruct*) [line 78, column 12]\n _=*&x:SomeStruct [line 78, column 12]\n n$7=_fun_SomeStruct_~SomeStruct(&x:SomeStruct*) [line 78, column 12]\n EXIT_SCOPE(_,_,_,n$1,n$3,n$5,n$7,y,x,f); [line 78, column 12]\n APPLY_ABSTRACTION; [line 78, column 12]\n " shape="box"] +"struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_3" [label="3: Return Stmt \n n$1=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12_operator()(&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12&) [line 78, column 10]\n *&return:int=n$1 [line 78, column 3]\n _=*&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12 [line 78, column 12]\n n$3=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12_~(&f:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*) injected [line 78, column 12]\n _=*&y:SomeStruct [line 78, column 12]\n n$5=_fun_SomeStruct_~SomeStruct(&y:SomeStruct*) injected [line 78, column 12]\n _=*&x:SomeStruct [line 78, column 12]\n n$7=_fun_SomeStruct_~SomeStruct(&x:SomeStruct*) injected [line 78, column 12]\n EXIT_SCOPE(_,_,_,n$1,n$3,n$5,n$7,y,x,f); [line 78, column 12]\n APPLY_ABSTRACTION; [line 78, column 12]\n " shape="box"] "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_3" -> "struct_capture#7773507847510274281.f3db763dc0b20b24ec397f7802254c90_2" ; @@ -159,7 +159,7 @@ digraph cfg { "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_2" [label="2: Exit Capture_capture_this_explicit \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$3); [line 52, column 3]\n NULLIFY(&lambda); [line 52, column 3]\n " color=yellow style=filled] -"capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_3" [label="3: Destruction \n _=*&lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19 [line 52, column 3]\n n$1=_fun_Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19_~(&lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19*) [line 52, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 52, column 3]\n APPLY_ABSTRACTION; [line 52, column 3]\n " shape="box"] +"capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_3" [label="3: Destruction \n _=*&lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19 [line 52, column 3]\n n$1=_fun_Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19_~(&lambda:Capture::capture_this_explicit::lambda_shared_lambda_lambda1.cpp:51:19*) injected [line 52, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 52, column 3]\n APPLY_ABSTRACTION; [line 52, column 3]\n " shape="box"] "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_3" -> "capture_this_explicit#Capture#(13194085360619722149).2dba35a78268b10ad413414cc832a8f0_2" ; @@ -174,7 +174,7 @@ digraph cfg { "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_2" [label="2: Exit Capture_capture_this_with_auto \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$3); [line 66, column 3]\n NULLIFY(&lambda); [line 66, column 3]\n " color=yellow style=filled] -"capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_3" [label="3: Destruction \n _=*&lambda:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19 [line 66, column 3]\n n$1=_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*) [line 66, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 66, column 3]\n APPLY_ABSTRACTION; [line 66, column 3]\n " shape="box"] +"capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_3" [label="3: Destruction \n _=*&lambda:Capture::capture_this_with_auto::lambda_shared_lambda_lambda1.cpp:65:19 [line 66, column 3]\n n$1=_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*) injected [line 66, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 66, column 3]\n APPLY_ABSTRACTION; [line 66, column 3]\n " shape="box"] "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_3" -> "capture_this_with_auto#Capture#(15696525048884093218).38be242109186a45cc282c38962c68e2_2" ; @@ -189,7 +189,7 @@ digraph cfg { "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_2" [label="2: Exit Capture_capture_star_this \n NULLIFY(&lambda); [line 58, column 3]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$3); [line 58, column 3]\n " color=yellow style=filled] -"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_3" [label="3: Destruction \n _=*&lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19 [line 58, column 3]\n n$1=_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19_~(&lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19*) [line 58, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 58, column 3]\n APPLY_ABSTRACTION; [line 58, column 3]\n " shape="box"] +"capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_3" [label="3: Destruction \n _=*&lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19 [line 58, column 3]\n n$1=_fun_Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19_~(&lambda:Capture::capture_star_this::lambda_shared_lambda_lambda1.cpp:55:19*) injected [line 58, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 58, column 3]\n APPLY_ABSTRACTION; [line 58, column 3]\n " shape="box"] "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_3" -> "capture_star_this#Capture#(2506493005619132138).63fd6aa2a7efbd48dc1a62c0c2bd2161_2" ; @@ -204,7 +204,7 @@ digraph cfg { "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_2" [label="2: Exit Capture_capture_this_with_equal \n NULLIFY(&lambda); [line 62, column 3]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$3); [line 62, column 3]\n " color=yellow style=filled] -"capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_3" [label="3: Destruction \n _=*&lambda:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19 [line 62, column 3]\n n$1=_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*) [line 62, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 62, column 3]\n APPLY_ABSTRACTION; [line 62, column 3]\n " shape="box"] +"capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_3" [label="3: Destruction \n _=*&lambda:Capture::capture_this_with_equal::lambda_shared_lambda_lambda1.cpp:61:19 [line 62, column 3]\n n$1=_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*) injected [line 62, column 3]\n EXIT_SCOPE(_,n$1,lambda); [line 62, column 3]\n APPLY_ABSTRACTION; [line 62, column 3]\n " shape="box"] "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_3" -> "capture_this_with_equal#Capture#(805776379555510952).ecd73e9a4e2bef0d060a242b61508f10_2" ; @@ -459,7 +459,7 @@ digraph cfg { "__infer_inner_destructor_~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(138105074354565016.e6c800e9d586d901864d79972d303d01_2" [label="2: Exit struct_capture::lambda_shared_lambda_lambda1.cpp:77:12___infer_inner_destructor_~ \n " color=yellow style=filled] -"__infer_inner_destructor_~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(138105074354565016.e6c800e9d586d901864d79972d303d01_3" [label="3: Destruction \n n$0=*&this:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12* [line 77, column 12]\n _=*n$0.__anon_field_1:SomeStruct [line 77, column 12]\n n$4=_fun_SomeStruct_~SomeStruct(n$0.__anon_field_1:SomeStruct*) [line 77, column 12]\n _=*n$0.__anon_field_0:SomeStruct [line 77, column 12]\n n$2=_fun_SomeStruct_~SomeStruct(n$0.__anon_field_0:SomeStruct*) [line 77, column 12]\n NULLIFY(&this); [line 77, column 12]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 77, column 12]\n APPLY_ABSTRACTION; [line 77, column 12]\n " shape="box"] +"__infer_inner_destructor_~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(138105074354565016.e6c800e9d586d901864d79972d303d01_3" [label="3: Destruction \n n$0=*&this:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12* [line 77, column 12]\n _=*n$0.__anon_field_1:SomeStruct [line 77, column 12]\n n$4=_fun_SomeStruct_~SomeStruct(n$0.__anon_field_1:SomeStruct*) injected [line 77, column 12]\n _=*n$0.__anon_field_0:SomeStruct [line 77, column 12]\n n$2=_fun_SomeStruct_~SomeStruct(n$0.__anon_field_0:SomeStruct*) injected [line 77, column 12]\n NULLIFY(&this); [line 77, column 12]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,this); [line 77, column 12]\n APPLY_ABSTRACTION; [line 77, column 12]\n " shape="box"] "__infer_inner_destructor_~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(138105074354565016.e6c800e9d586d901864d79972d303d01_3" -> "__infer_inner_destructor_~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(138105074354565016.e6c800e9d586d901864d79972d303d01_2" ; @@ -470,7 +470,7 @@ digraph cfg { "~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(13810507435456501647).7325714c5315daf013352ff960c1611b_2" [label="2: Exit struct_capture::lambda_shared_lambda_lambda1.cpp:77:12_~ \n " color=yellow style=filled] -"~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(13810507435456501647).7325714c5315daf013352ff960c1611b_3" [label="3: Destruction \n n$0=*&this:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12* [line 77, column 12]\n _=*n$0:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12 [line 77, column 12]\n n$2=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12___infer_inner_destructor_~(n$0:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*) [line 77, column 12]\n NULLIFY(&this); [line 77, column 12]\n EXIT_SCOPE(_,n$0,n$2,this); [line 77, column 12]\n APPLY_ABSTRACTION; [line 77, column 12]\n " shape="box"] +"~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(13810507435456501647).7325714c5315daf013352ff960c1611b_3" [label="3: Destruction \n n$0=*&this:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12* [line 77, column 12]\n _=*n$0:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12 [line 77, column 12]\n n$2=_fun_struct_capture::lambda_shared_lambda_lambda1.cpp:77:12___infer_inner_destructor_~(n$0:struct_capture::lambda_shared_lambda_lambda1.cpp:77:12*) injected [line 77, column 12]\n NULLIFY(&this); [line 77, column 12]\n EXIT_SCOPE(_,n$0,n$2,this); [line 77, column 12]\n APPLY_ABSTRACTION; [line 77, column 12]\n " shape="box"] "~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(13810507435456501647).7325714c5315daf013352ff960c1611b_3" -> "~#lambda_shared_lambda_lambda1.cpp:77:12#struct_capture#(13810507435456501647).7325714c5315daf013352ff960c1611b_2" ; 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 cbae5fd1f..f1f2b0cc3 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/conversion_operator.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_2" [label="2: Exit conversion_operator::branch_div0 \n NULLIFY(&x); [line 39, column 1]\n " color=yellow style=filled] -"branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_3" [label="3: Return Stmt \n _=*&x:conversion_operator::X [line 38, column 10]\n n$1=_fun_conversion_operator::X_operator_int(&x:conversion_operator::X&) [line 38, column 10]\n *&return:int=n$1 [line 38, column 3]\n _=*&x:conversion_operator::X [line 38, column 10]\n n$3=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) [line 38, column 10]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 38, column 10]\n APPLY_ABSTRACTION; [line 38, column 10]\n " shape="box"] +"branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_3" [label="3: Return Stmt \n _=*&x:conversion_operator::X [line 38, column 10]\n n$1=_fun_conversion_operator::X_operator_int(&x:conversion_operator::X&) [line 38, column 10]\n *&return:int=n$1 [line 38, column 3]\n _=*&x:conversion_operator::X [line 38, column 10]\n n$3=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) injected [line 38, column 10]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 38, column 10]\n APPLY_ABSTRACTION; [line 38, column 10]\n " shape="box"] "branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_3" -> "branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_2" ; @@ -28,7 +28,7 @@ digraph cfg { "branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_7" -> "branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_4" ; -"branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_8" [label="8: Return Stmt \n n$7=*&v:int [line 36, column 16]\n *&return:int=(1 / n$7) [line 36, column 5]\n _=*&x:conversion_operator::X [line 36, column 16]\n n$9=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) [line 36, column 16]\n NULLIFY(&v); [line 36, column 16]\n EXIT_SCOPE(_,n$7,n$9,v,x); [line 36, column 16]\n APPLY_ABSTRACTION; [line 36, column 16]\n " shape="box"] +"branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_8" [label="8: Return Stmt \n n$7=*&v:int [line 36, column 16]\n *&return:int=(1 / n$7) [line 36, column 5]\n _=*&x:conversion_operator::X [line 36, column 16]\n n$9=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) injected [line 36, column 16]\n NULLIFY(&v); [line 36, column 16]\n EXIT_SCOPE(_,n$7,n$9,v,x); [line 36, column 16]\n APPLY_ABSTRACTION; [line 36, column 16]\n " shape="box"] "branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_8" -> "branch_div0#conversion_operator#6762751670974669482.0ad6ec49c1dc8988836c6e44e9d2b402_2" ; @@ -47,7 +47,7 @@ digraph cfg { "branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_2" [label="2: Exit conversion_operator::branch_div1 \n NULLIFY(&x); [line 68, column 1]\n " color=yellow style=filled] -"branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_3" [label="3: Return Stmt \n _=*&x:conversion_operator::X [line 67, column 10]\n n$1=_fun_conversion_operator::X_operator_int(&x:conversion_operator::X&) [line 67, column 10]\n *&return:int=n$1 [line 67, column 3]\n _=*&x:conversion_operator::X [line 67, column 10]\n n$3=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) [line 67, column 10]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 67, column 10]\n APPLY_ABSTRACTION; [line 67, column 10]\n " shape="box"] +"branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_3" [label="3: Return Stmt \n _=*&x:conversion_operator::X [line 67, column 10]\n n$1=_fun_conversion_operator::X_operator_int(&x:conversion_operator::X&) [line 67, column 10]\n *&return:int=n$1 [line 67, column 3]\n _=*&x:conversion_operator::X [line 67, column 10]\n n$3=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) injected [line 67, column 10]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 67, column 10]\n APPLY_ABSTRACTION; [line 67, column 10]\n " shape="box"] "branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_3" -> "branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_2" ; @@ -68,7 +68,7 @@ digraph cfg { "branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_7" -> "branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_4" ; -"branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_8" [label="8: Return Stmt \n n$7=*&v:int [line 65, column 16]\n *&return:int=(1 / n$7) [line 65, column 5]\n _=*&x:conversion_operator::X [line 65, column 16]\n n$9=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) [line 65, column 16]\n NULLIFY(&v); [line 65, column 16]\n EXIT_SCOPE(_,n$7,n$9,x,v); [line 65, column 16]\n APPLY_ABSTRACTION; [line 65, column 16]\n " shape="box"] +"branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_8" [label="8: Return Stmt \n n$7=*&v:int [line 65, column 16]\n *&return:int=(1 / n$7) [line 65, column 5]\n _=*&x:conversion_operator::X [line 65, column 16]\n n$9=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) injected [line 65, column 16]\n NULLIFY(&v); [line 65, column 16]\n EXIT_SCOPE(_,n$7,n$9,x,v); [line 65, column 16]\n APPLY_ABSTRACTION; [line 65, column 16]\n " shape="box"] "branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_8" -> "branch_div1#conversion_operator#6025807300888085665.f3ee34cea9ff5d10407119d4b377adc2_2" ; @@ -87,7 +87,7 @@ digraph cfg { "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_2" [label="2: Exit conversion_operator::branch_no_div \n NULLIFY(&x); [line 59, column 1]\n " color=yellow style=filled] -"branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_3" [label="3: Return Stmt \n _=*&x:conversion_operator::X [line 58, column 10]\n n$1=_fun_conversion_operator::X_operator_int(&x:conversion_operator::X&) [line 58, column 10]\n *&return:int=n$1 [line 58, column 3]\n _=*&x:conversion_operator::X [line 58, column 10]\n n$3=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) [line 58, column 10]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 58, column 10]\n APPLY_ABSTRACTION; [line 58, column 10]\n " shape="box"] +"branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_3" [label="3: Return Stmt \n _=*&x:conversion_operator::X [line 58, column 10]\n n$1=_fun_conversion_operator::X_operator_int(&x:conversion_operator::X&) [line 58, column 10]\n *&return:int=n$1 [line 58, column 3]\n _=*&x:conversion_operator::X [line 58, column 10]\n n$3=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) injected [line 58, column 10]\n EXIT_SCOPE(_,_,n$1,n$3,x); [line 58, column 10]\n APPLY_ABSTRACTION; [line 58, column 10]\n " shape="box"] "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_3" -> "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_2" ; @@ -108,7 +108,7 @@ digraph cfg { "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_7" -> "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_4" ; -"branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_8" [label="8: Return Stmt \n n$7=*&v:int [line 56, column 16]\n *&return:int=(1 / n$7) [line 56, column 5]\n _=*&x:conversion_operator::X [line 56, column 16]\n n$9=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) [line 56, column 16]\n NULLIFY(&v); [line 56, column 16]\n EXIT_SCOPE(_,n$7,n$9,v,x); [line 56, column 16]\n APPLY_ABSTRACTION; [line 56, column 16]\n " shape="box"] +"branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_8" [label="8: Return Stmt \n n$7=*&v:int [line 56, column 16]\n *&return:int=(1 / n$7) [line 56, column 5]\n _=*&x:conversion_operator::X [line 56, column 16]\n n$9=_fun_conversion_operator::X_~X(&x:conversion_operator::X*) injected [line 56, column 16]\n NULLIFY(&v); [line 56, column 16]\n EXIT_SCOPE(_,n$7,n$9,v,x); [line 56, column 16]\n APPLY_ABSTRACTION; [line 56, column 16]\n " shape="box"] "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_8" -> "branch_no_div#conversion_operator#18429458682592639842.4c7cf0cc20989fd2ea431840e11b2521_2" ; 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 3685080df..2dd915bb5 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/return_struct.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/return_struct.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_2" [label="2: Exit test \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$4); [line 22, column 1]\n NULLIFY(&x); [line 22, column 1]\n " color=yellow style=filled] -"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 21, column 14]\n *&return:int=(1 / n$0) [line 21, column 3]\n _=*&x:X [line 21, column 16]\n n$2=_fun_X_~X(&x:X*) [line 21, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 21, column 16]\n APPLY_ABSTRACTION; [line 21, column 16]\n " shape="box"] +"test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 21, column 14]\n *&return:int=(1 / n$0) [line 21, column 3]\n _=*&x:X [line 21, column 16]\n n$2=_fun_X_~X(&x:X*) injected [line 21, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 21, column 16]\n APPLY_ABSTRACTION; [line 21, column 16]\n " shape="box"] "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_3" -> "test(class A)#14183353284361723530.f22d37fbaacc66a7efb8fb240415be10_2" ; @@ -22,7 +22,7 @@ digraph cfg { "get#A(class X)#(1761444600576643509).0f83d3543d984a8645cb78162580d93f_2" [label="2: Exit A_get \n NULLIFY(&x); [line 16, column 3]\n " color=yellow style=filled] -"get#A(class X)#(1761444600576643509).0f83d3543d984a8645cb78162580d93f_3" [label="3: Return Stmt \n n$0=*&__return_param:X* [line 15, column 5]\n n$1=_fun_X_X(n$0:X*,&x:X&) [line 15, column 12]\n _=*&x:X [line 15, column 12]\n n$3=_fun_X_~X(&x:X*) [line 15, column 12]\n NULLIFY(&__return_param); [line 15, column 12]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 15, column 12]\n APPLY_ABSTRACTION; [line 15, column 12]\n " shape="box"] +"get#A(class X)#(1761444600576643509).0f83d3543d984a8645cb78162580d93f_3" [label="3: Return Stmt \n n$0=*&__return_param:X* [line 15, column 5]\n n$1=_fun_X_X(n$0:X*,&x:X&) [line 15, column 12]\n _=*&x:X [line 15, column 12]\n n$3=_fun_X_~X(&x:X*) injected [line 15, column 12]\n NULLIFY(&__return_param); [line 15, column 12]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 15, column 12]\n APPLY_ABSTRACTION; [line 15, column 12]\n " shape="box"] "get#A(class X)#(1761444600576643509).0f83d3543d984a8645cb78162580d93f_3" -> "get#A(class X)#(1761444600576643509).0f83d3543d984a8645cb78162580d93f_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/methods/virtual_methods.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/virtual_methods.cpp.dot index 09f5aa634..cba2fbb2a 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/virtual_methods.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/virtual_methods.cpp.dot @@ -22,7 +22,7 @@ digraph cfg { "poly_area#4209622570361008343.816833144841084a7fd6071bbff4c354_2" [label="2: Exit poly_area \n NULLIFY(&poly); [line 55, column 1]\n NULLIFY(&ppoly3); [line 55, column 1]\n " color=yellow style=filled] -"poly_area#4209622570361008343.816833144841084a7fd6071bbff4c354_3" [label="3: Return Stmt \n n$0=*&ppoly3:Polygon* [line 54, column 14]\n _=*n$0:Polygon [line 54, column 14]\n n$2=_fun_Polygon_area(n$0:Polygon*) virtual [line 54, column 14]\n *&return:int=(1 / n$2) [line 54, column 3]\n _=*&poly:Polygon [line 54, column 27]\n n$4=_fun_Polygon_~Polygon(&poly:Polygon*) virtual [line 54, column 27]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,ppoly3,poly); [line 54, column 27]\n APPLY_ABSTRACTION; [line 54, column 27]\n " shape="box"] +"poly_area#4209622570361008343.816833144841084a7fd6071bbff4c354_3" [label="3: Return Stmt \n n$0=*&ppoly3:Polygon* [line 54, column 14]\n _=*n$0:Polygon [line 54, column 14]\n n$2=_fun_Polygon_area(n$0:Polygon*) virtual [line 54, column 14]\n *&return:int=(1 / n$2) [line 54, column 3]\n _=*&poly:Polygon [line 54, column 27]\n n$4=_fun_Polygon_~Polygon(&poly:Polygon*) injected virtual [line 54, column 27]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,ppoly3,poly); [line 54, column 27]\n APPLY_ABSTRACTION; [line 54, column 27]\n " shape="box"] "poly_area#4209622570361008343.816833144841084a7fd6071bbff4c354_3" -> "poly_area#4209622570361008343.816833144841084a7fd6071bbff4c354_2" ; @@ -41,7 +41,7 @@ digraph cfg { "rect_area#9087317270636867019.dedb17c23e2d96ddd6e1087003e78815_2" [label="2: Exit rect_area \n NULLIFY(&rect); [line 41, column 1]\n NULLIFY(&ppoly1); [line 41, column 1]\n " color=yellow style=filled] -"rect_area#9087317270636867019.dedb17c23e2d96ddd6e1087003e78815_3" [label="3: Return Stmt \n n$0=*&ppoly1:Polygon* [line 40, column 15]\n _=*n$0:Polygon [line 40, column 15]\n n$2=_fun_Polygon_area(n$0:Polygon*) virtual [line 40, column 15]\n *&return:int=(1 / (n$2 - 20)) [line 40, column 3]\n _=*&rect:Rectangle [line 40, column 34]\n n$4=_fun_Rectangle_~Rectangle(&rect:Rectangle*) virtual [line 40, column 34]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,ppoly1,rect); [line 40, column 34]\n APPLY_ABSTRACTION; [line 40, column 34]\n " shape="box"] +"rect_area#9087317270636867019.dedb17c23e2d96ddd6e1087003e78815_3" [label="3: Return Stmt \n n$0=*&ppoly1:Polygon* [line 40, column 15]\n _=*n$0:Polygon [line 40, column 15]\n n$2=_fun_Polygon_area(n$0:Polygon*) virtual [line 40, column 15]\n *&return:int=(1 / (n$2 - 20)) [line 40, column 3]\n _=*&rect:Rectangle [line 40, column 34]\n n$4=_fun_Rectangle_~Rectangle(&rect:Rectangle*) injected virtual [line 40, column 34]\n EXIT_SCOPE(_,_,n$0,n$2,n$4,ppoly1,rect); [line 40, column 34]\n APPLY_ABSTRACTION; [line 40, column 34]\n " shape="box"] "rect_area#9087317270636867019.dedb17c23e2d96ddd6e1087003e78815_3" -> "rect_area#9087317270636867019.dedb17c23e2d96ddd6e1087003e78815_2" ; @@ -64,7 +64,7 @@ digraph cfg { "tri_area#1215149030941579879.cc7663ab4ea89457778545059b70bc38_2" [label="2: Exit tri_area \n NULLIFY(&trgl); [line 49, column 1]\n NULLIFY(&ppoly2); [line 49, column 1]\n NULLIFY(&poly); [line 49, column 1]\n " color=yellow style=filled] -"tri_area#1215149030941579879.cc7663ab4ea89457778545059b70bc38_3" [label="3: Return Stmt \n n$0=*&ppoly2:Polygon* [line 48, column 15]\n _=*n$0:Polygon [line 48, column 15]\n n$2=_fun_Polygon_area(n$0:Polygon*) virtual [line 48, column 15]\n *&return:int=(1 / (n$2 - 10)) [line 48, column 3]\n _=*&poly:Polygon [line 48, column 34]\n n$4=_fun_Polygon_~Polygon(&poly:Polygon*) virtual [line 48, column 34]\n _=*&trgl:Triangle [line 48, column 34]\n n$6=_fun_Triangle_~Triangle(&trgl:Triangle*) virtual [line 48, column 34]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,poly,ppoly2,trgl); [line 48, column 34]\n APPLY_ABSTRACTION; [line 48, column 34]\n " shape="box"] +"tri_area#1215149030941579879.cc7663ab4ea89457778545059b70bc38_3" [label="3: Return Stmt \n n$0=*&ppoly2:Polygon* [line 48, column 15]\n _=*n$0:Polygon [line 48, column 15]\n n$2=_fun_Polygon_area(n$0:Polygon*) virtual [line 48, column 15]\n *&return:int=(1 / (n$2 - 10)) [line 48, column 3]\n _=*&poly:Polygon [line 48, column 34]\n n$4=_fun_Polygon_~Polygon(&poly:Polygon*) injected virtual [line 48, column 34]\n _=*&trgl:Triangle [line 48, column 34]\n n$6=_fun_Triangle_~Triangle(&trgl:Triangle*) injected virtual [line 48, column 34]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,poly,ppoly2,trgl); [line 48, column 34]\n APPLY_ABSTRACTION; [line 48, column 34]\n " shape="box"] "tri_area#1215149030941579879.cc7663ab4ea89457778545059b70bc38_3" -> "tri_area#1215149030941579879.cc7663ab4ea89457778545059b70bc38_2" ; @@ -91,7 +91,7 @@ digraph cfg { "tri_not_virtual_area#9435562296359660595.88e7106fc7dcfd34401502a9deb415ac_2" [label="2: Exit tri_not_virtual_area \n NULLIFY(&ppoly2); [line 63, column 1]\n NULLIFY(&trgl); [line 63, column 1]\n NULLIFY(&poly); [line 63, column 1]\n " color=yellow style=filled] -"tri_not_virtual_area#9435562296359660595.88e7106fc7dcfd34401502a9deb415ac_3" [label="3: Return Stmt \n n$0=*&ppoly2:Polygon* [line 62, column 14]\n _=*n$0:Polygon [line 62, column 14]\n n$2=_fun_Polygon_area(n$0:Polygon*) [line 62, column 14]\n *&return:int=(1 / n$2) [line 62, column 3]\n _=*&poly:Polygon [line 62, column 36]\n n$4=_fun_Polygon_~Polygon(&poly:Polygon*) virtual [line 62, column 36]\n _=*&trgl:Triangle [line 62, column 36]\n n$6=_fun_Triangle_~Triangle(&trgl:Triangle*) virtual [line 62, column 36]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,poly,trgl,ppoly2); [line 62, column 36]\n APPLY_ABSTRACTION; [line 62, column 36]\n " shape="box"] +"tri_not_virtual_area#9435562296359660595.88e7106fc7dcfd34401502a9deb415ac_3" [label="3: Return Stmt \n n$0=*&ppoly2:Polygon* [line 62, column 14]\n _=*n$0:Polygon [line 62, column 14]\n n$2=_fun_Polygon_area(n$0:Polygon*) [line 62, column 14]\n *&return:int=(1 / n$2) [line 62, column 3]\n _=*&poly:Polygon [line 62, column 36]\n n$4=_fun_Polygon_~Polygon(&poly:Polygon*) injected virtual [line 62, column 36]\n _=*&trgl:Triangle [line 62, column 36]\n n$6=_fun_Triangle_~Triangle(&trgl:Triangle*) injected virtual [line 62, column 36]\n EXIT_SCOPE(_,_,_,n$0,n$2,n$4,n$6,poly,trgl,ppoly2); [line 62, column 36]\n APPLY_ABSTRACTION; [line 62, column 36]\n " shape="box"] "tri_not_virtual_area#9435562296359660595.88e7106fc7dcfd34401502a9deb415ac_3" -> "tri_not_virtual_area#9435562296359660595.88e7106fc7dcfd34401502a9deb415ac_2" ; @@ -199,7 +199,7 @@ digraph cfg { "__infer_inner_destructor_~Triangle#Triangle#(14073216405110724792).c04c3fa3cd50a3125c149616f3af0105_2" [label="2: Exit Triangle___infer_inner_destructor_~Triangle \n " color=yellow style=filled] -"__infer_inner_destructor_~Triangle#Triangle#(14073216405110724792).c04c3fa3cd50a3125c149616f3af0105_3" [label="3: Destruction \n n$0=*&this:Triangle* [line 29, column 15]\n _=*n$0:Triangle [line 29, column 15]\n n$2=_fun_Polygon___infer_inner_destructor_~Polygon(n$0:Triangle*) virtual [line 29, column 15]\n NULLIFY(&this); [line 29, column 15]\n EXIT_SCOPE(_,n$0,n$2,this); [line 29, column 15]\n APPLY_ABSTRACTION; [line 29, column 15]\n " shape="box"] +"__infer_inner_destructor_~Triangle#Triangle#(14073216405110724792).c04c3fa3cd50a3125c149616f3af0105_3" [label="3: Destruction \n n$0=*&this:Triangle* [line 29, column 15]\n _=*n$0:Triangle [line 29, column 15]\n n$2=_fun_Polygon___infer_inner_destructor_~Polygon(n$0:Triangle*) injected virtual [line 29, column 15]\n NULLIFY(&this); [line 29, column 15]\n EXIT_SCOPE(_,n$0,n$2,this); [line 29, column 15]\n APPLY_ABSTRACTION; [line 29, column 15]\n " shape="box"] "__infer_inner_destructor_~Triangle#Triangle#(14073216405110724792).c04c3fa3cd50a3125c149616f3af0105_3" -> "__infer_inner_destructor_~Triangle#Triangle#(14073216405110724792).c04c3fa3cd50a3125c149616f3af0105_2" ; @@ -210,7 +210,7 @@ digraph cfg { "~Triangle#Triangle#(14073216405110724792).8adff4889e6d988a35e49531a9afaad5_2" [label="2: Exit Triangle_~Triangle \n " color=yellow style=filled] -"~Triangle#Triangle#(14073216405110724792).8adff4889e6d988a35e49531a9afaad5_3" [label="3: Destruction \n n$0=*&this:Triangle* [line 29, column 15]\n _=*n$0:Triangle [line 29, column 15]\n n$2=_fun_Triangle___infer_inner_destructor_~Triangle(n$0:Triangle*) virtual [line 29, column 15]\n NULLIFY(&this); [line 29, column 15]\n EXIT_SCOPE(_,n$0,n$2,this); [line 29, column 15]\n APPLY_ABSTRACTION; [line 29, column 15]\n " shape="box"] +"~Triangle#Triangle#(14073216405110724792).8adff4889e6d988a35e49531a9afaad5_3" [label="3: Destruction \n n$0=*&this:Triangle* [line 29, column 15]\n _=*n$0:Triangle [line 29, column 15]\n n$2=_fun_Triangle___infer_inner_destructor_~Triangle(n$0:Triangle*) injected virtual [line 29, column 15]\n NULLIFY(&this); [line 29, column 15]\n EXIT_SCOPE(_,n$0,n$2,this); [line 29, column 15]\n APPLY_ABSTRACTION; [line 29, column 15]\n " shape="box"] "~Triangle#Triangle#(14073216405110724792).8adff4889e6d988a35e49531a9afaad5_3" -> "~Triangle#Triangle#(14073216405110724792).8adff4889e6d988a35e49531a9afaad5_2" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/reference/reference_field.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/reference/reference_field.cpp.dot index 32bb382de..a256fcce5 100644 --- a/infer/tests/codetoanalyze/cpp/shared/reference/reference_field.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/reference/reference_field.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "ptr_F_div0#reference_field#14005768761742554773.fa7bac24d70ab0b747e7fb5360157c5f_2" [label="2: Exit reference_field::ptr_F_div0 \n NULLIFY(&x); [line 85, column 1]\n NULLIFY(&r); [line 85, column 1]\n " color=yellow style=filled] -"ptr_F_div0#reference_field#14005768761742554773.fa7bac24d70ab0b747e7fb5360157c5f_3" [label="3: Return Stmt \n n$0=*&r.x:reference_field::X* [line 84, column 14]\n n$1=*n$0.f:int [line 84, column 14]\n *&return:int=(1 / n$1) [line 84, column 3]\n _=*&x:reference_field::X [line 84, column 19]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 84, column 19]\n EXIT_SCOPE(_,n$0,n$1,n$3,r,x); [line 84, column 19]\n APPLY_ABSTRACTION; [line 84, column 19]\n " shape="box"] +"ptr_F_div0#reference_field#14005768761742554773.fa7bac24d70ab0b747e7fb5360157c5f_3" [label="3: Return Stmt \n n$0=*&r.x:reference_field::X* [line 84, column 14]\n n$1=*n$0.f:int [line 84, column 14]\n *&return:int=(1 / n$1) [line 84, column 3]\n _=*&x:reference_field::X [line 84, column 19]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 84, column 19]\n EXIT_SCOPE(_,n$0,n$1,n$3,r,x); [line 84, column 19]\n APPLY_ABSTRACTION; [line 84, column 19]\n " shape="box"] "ptr_F_div0#reference_field#14005768761742554773.fa7bac24d70ab0b747e7fb5360157c5f_3" -> "ptr_F_div0#reference_field#14005768761742554773.fa7bac24d70ab0b747e7fb5360157c5f_2" ; @@ -34,7 +34,7 @@ digraph cfg { "ptr_I_div0#reference_field#18255668366877010738.5b1f39b2d5e2810cbdbf96621d88c2d0_2" [label="2: Exit reference_field::ptr_I_div0 \n NULLIFY(&x); [line 93, column 1]\n NULLIFY(&r); [line 93, column 1]\n " color=yellow style=filled] -"ptr_I_div0#reference_field#18255668366877010738.5b1f39b2d5e2810cbdbf96621d88c2d0_3" [label="3: Return Stmt \n n$0=*&r.i:int* [line 92, column 15]\n n$1=*n$0:int [line 92, column 14]\n *&return:int=(1 / n$1) [line 92, column 3]\n _=*&x:reference_field::X [line 92, column 17]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 92, column 17]\n EXIT_SCOPE(_,n$0,n$1,n$3,r,x); [line 92, column 17]\n APPLY_ABSTRACTION; [line 92, column 17]\n " shape="box"] +"ptr_I_div0#reference_field#18255668366877010738.5b1f39b2d5e2810cbdbf96621d88c2d0_3" [label="3: Return Stmt \n n$0=*&r.i:int* [line 92, column 15]\n n$1=*n$0:int [line 92, column 14]\n *&return:int=(1 / n$1) [line 92, column 3]\n _=*&x:reference_field::X [line 92, column 17]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 92, column 17]\n EXIT_SCOPE(_,n$0,n$1,n$3,r,x); [line 92, column 17]\n APPLY_ABSTRACTION; [line 92, column 17]\n " shape="box"] "ptr_I_div0#reference_field#18255668366877010738.5b1f39b2d5e2810cbdbf96621d88c2d0_3" -> "ptr_I_div0#reference_field#18255668366877010738.5b1f39b2d5e2810cbdbf96621d88c2d0_2" ; @@ -61,7 +61,7 @@ digraph cfg { "ptr_getF_div0#reference_field#3337646019334387234.41e241b3e1d6a6f7c629a1c6ca69cf07_2" [label="2: Exit reference_field::ptr_getF_div0 \n NULLIFY(&r); [line 101, column 1]\n NULLIFY(&x); [line 101, column 1]\n " color=yellow style=filled] -"ptr_getF_div0#reference_field#3337646019334387234.41e241b3e1d6a6f7c629a1c6ca69cf07_3" [label="3: Return Stmt \n _=*&r:reference_field::Ptr [line 100, column 14]\n n$1=_fun_reference_field::Ptr_getF(&r:reference_field::Ptr&) [line 100, column 14]\n *&return:int=(1 / n$1) [line 100, column 3]\n _=*&x:reference_field::X [line 100, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 100, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,x,r); [line 100, column 21]\n APPLY_ABSTRACTION; [line 100, column 21]\n " shape="box"] +"ptr_getF_div0#reference_field#3337646019334387234.41e241b3e1d6a6f7c629a1c6ca69cf07_3" [label="3: Return Stmt \n _=*&r:reference_field::Ptr [line 100, column 14]\n n$1=_fun_reference_field::Ptr_getF(&r:reference_field::Ptr&) [line 100, column 14]\n *&return:int=(1 / n$1) [line 100, column 3]\n _=*&x:reference_field::X [line 100, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 100, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,x,r); [line 100, column 21]\n APPLY_ABSTRACTION; [line 100, column 21]\n " shape="box"] "ptr_getF_div0#reference_field#3337646019334387234.41e241b3e1d6a6f7c629a1c6ca69cf07_3" -> "ptr_getF_div0#reference_field#3337646019334387234.41e241b3e1d6a6f7c629a1c6ca69cf07_2" ; @@ -88,7 +88,7 @@ digraph cfg { "ptr_getI_div0#reference_field#2818660867908728453.99667cea541002986498839338031f13_2" [label="2: Exit reference_field::ptr_getI_div0 \n NULLIFY(&x); [line 109, column 1]\n NULLIFY(&r); [line 109, column 1]\n " color=yellow style=filled] -"ptr_getI_div0#reference_field#2818660867908728453.99667cea541002986498839338031f13_3" [label="3: Return Stmt \n _=*&r:reference_field::Ptr [line 108, column 14]\n n$1=_fun_reference_field::Ptr_getI(&r:reference_field::Ptr&) [line 108, column 14]\n *&return:int=(1 / n$1) [line 108, column 3]\n _=*&x:reference_field::X [line 108, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 108, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,r,x); [line 108, column 21]\n APPLY_ABSTRACTION; [line 108, column 21]\n " shape="box"] +"ptr_getI_div0#reference_field#2818660867908728453.99667cea541002986498839338031f13_3" [label="3: Return Stmt \n _=*&r:reference_field::Ptr [line 108, column 14]\n n$1=_fun_reference_field::Ptr_getI(&r:reference_field::Ptr&) [line 108, column 14]\n *&return:int=(1 / n$1) [line 108, column 3]\n _=*&x:reference_field::X [line 108, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 108, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,r,x); [line 108, column 21]\n APPLY_ABSTRACTION; [line 108, column 21]\n " shape="box"] "ptr_getI_div0#reference_field#2818660867908728453.99667cea541002986498839338031f13_3" -> "ptr_getI_div0#reference_field#2818660867908728453.99667cea541002986498839338031f13_2" ; @@ -115,7 +115,7 @@ digraph cfg { "ref_F_div0#reference_field#11041134718140208132.6e58f8c7050613499e915a7d12b0f081_2" [label="2: Exit reference_field::ref_F_div0 \n NULLIFY(&r); [line 52, column 1]\n NULLIFY(&x); [line 52, column 1]\n " color=yellow style=filled] -"ref_F_div0#reference_field#11041134718140208132.6e58f8c7050613499e915a7d12b0f081_3" [label="3: Return Stmt \n n$0=*&r.x:reference_field::X& [line 51, column 14]\n n$1=*n$0.f:int [line 51, column 14]\n *&return:int=(1 / n$1) [line 51, column 3]\n _=*&x:reference_field::X [line 51, column 18]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 51, column 18]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,r); [line 51, column 18]\n APPLY_ABSTRACTION; [line 51, column 18]\n " shape="box"] +"ref_F_div0#reference_field#11041134718140208132.6e58f8c7050613499e915a7d12b0f081_3" [label="3: Return Stmt \n n$0=*&r.x:reference_field::X& [line 51, column 14]\n n$1=*n$0.f:int [line 51, column 14]\n *&return:int=(1 / n$1) [line 51, column 3]\n _=*&x:reference_field::X [line 51, column 18]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 51, column 18]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,r); [line 51, column 18]\n APPLY_ABSTRACTION; [line 51, column 18]\n " shape="box"] "ref_F_div0#reference_field#11041134718140208132.6e58f8c7050613499e915a7d12b0f081_3" -> "ref_F_div0#reference_field#11041134718140208132.6e58f8c7050613499e915a7d12b0f081_2" ; @@ -142,7 +142,7 @@ digraph cfg { "ref_I_div0#reference_field#12578013844532400739.b911fdef1ca9c73b658bff3d5d964b9b_2" [label="2: Exit reference_field::ref_I_div0 \n NULLIFY(&r); [line 60, column 1]\n NULLIFY(&x); [line 60, column 1]\n " color=yellow style=filled] -"ref_I_div0#reference_field#12578013844532400739.b911fdef1ca9c73b658bff3d5d964b9b_3" [label="3: Return Stmt \n n$0=*&r.i:int& [line 59, column 14]\n n$1=*n$0:int [line 59, column 14]\n *&return:int=(1 / n$1) [line 59, column 3]\n _=*&x:reference_field::X [line 59, column 16]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 59, column 16]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,r); [line 59, column 16]\n APPLY_ABSTRACTION; [line 59, column 16]\n " shape="box"] +"ref_I_div0#reference_field#12578013844532400739.b911fdef1ca9c73b658bff3d5d964b9b_3" [label="3: Return Stmt \n n$0=*&r.i:int& [line 59, column 14]\n n$1=*n$0:int [line 59, column 14]\n *&return:int=(1 / n$1) [line 59, column 3]\n _=*&x:reference_field::X [line 59, column 16]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 59, column 16]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,r); [line 59, column 16]\n APPLY_ABSTRACTION; [line 59, column 16]\n " shape="box"] "ref_I_div0#reference_field#12578013844532400739.b911fdef1ca9c73b658bff3d5d964b9b_3" -> "ref_I_div0#reference_field#12578013844532400739.b911fdef1ca9c73b658bff3d5d964b9b_2" ; @@ -169,7 +169,7 @@ digraph cfg { "ref_getF_div0#reference_field#2481930918988851369.2dc7181f26bf9bad7c2f06846f4d7ec4_2" [label="2: Exit reference_field::ref_getF_div0 \n NULLIFY(&r); [line 68, column 1]\n NULLIFY(&x); [line 68, column 1]\n " color=yellow style=filled] -"ref_getF_div0#reference_field#2481930918988851369.2dc7181f26bf9bad7c2f06846f4d7ec4_3" [label="3: Return Stmt \n _=*&r:reference_field::Ref [line 67, column 14]\n n$1=_fun_reference_field::Ref_getF(&r:reference_field::Ref&) [line 67, column 14]\n *&return:int=(1 / n$1) [line 67, column 3]\n _=*&x:reference_field::X [line 67, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 67, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,x,r); [line 67, column 21]\n APPLY_ABSTRACTION; [line 67, column 21]\n " shape="box"] +"ref_getF_div0#reference_field#2481930918988851369.2dc7181f26bf9bad7c2f06846f4d7ec4_3" [label="3: Return Stmt \n _=*&r:reference_field::Ref [line 67, column 14]\n n$1=_fun_reference_field::Ref_getF(&r:reference_field::Ref&) [line 67, column 14]\n *&return:int=(1 / n$1) [line 67, column 3]\n _=*&x:reference_field::X [line 67, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 67, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,x,r); [line 67, column 21]\n APPLY_ABSTRACTION; [line 67, column 21]\n " shape="box"] "ref_getF_div0#reference_field#2481930918988851369.2dc7181f26bf9bad7c2f06846f4d7ec4_3" -> "ref_getF_div0#reference_field#2481930918988851369.2dc7181f26bf9bad7c2f06846f4d7ec4_2" ; @@ -196,7 +196,7 @@ digraph cfg { "ref_getI_div0#reference_field#17267881158640772750.8919328183561d84930ec2a40da70667_2" [label="2: Exit reference_field::ref_getI_div0 \n NULLIFY(&x); [line 76, column 1]\n NULLIFY(&r); [line 76, column 1]\n " color=yellow style=filled] -"ref_getI_div0#reference_field#17267881158640772750.8919328183561d84930ec2a40da70667_3" [label="3: Return Stmt \n _=*&r:reference_field::Ref [line 75, column 14]\n n$1=_fun_reference_field::Ref_getI(&r:reference_field::Ref&) [line 75, column 14]\n *&return:int=(1 / n$1) [line 75, column 3]\n _=*&x:reference_field::X [line 75, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 75, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,r,x); [line 75, column 21]\n APPLY_ABSTRACTION; [line 75, column 21]\n " shape="box"] +"ref_getI_div0#reference_field#17267881158640772750.8919328183561d84930ec2a40da70667_3" [label="3: Return Stmt \n _=*&r:reference_field::Ref [line 75, column 14]\n n$1=_fun_reference_field::Ref_getI(&r:reference_field::Ref&) [line 75, column 14]\n *&return:int=(1 / n$1) [line 75, column 3]\n _=*&x:reference_field::X [line 75, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 75, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,r,x); [line 75, column 21]\n APPLY_ABSTRACTION; [line 75, column 21]\n " shape="box"] "ref_getI_div0#reference_field#17267881158640772750.8919328183561d84930ec2a40da70667_3" -> "ref_getI_div0#reference_field#17267881158640772750.8919328183561d84930ec2a40da70667_2" ; @@ -223,7 +223,7 @@ digraph cfg { "val_F_div0#reference_field#8428286850923379914.8fdee85eabf77b0016437fa0006d373c_2" [label="2: Exit reference_field::val_F_div0 \n NULLIFY(&r); [line 118, column 1]\n NULLIFY(&x); [line 118, column 1]\n " color=yellow style=filled] -"val_F_div0#reference_field#8428286850923379914.8fdee85eabf77b0016437fa0006d373c_3" [label="3: Return Stmt \n n$0=*&r.x.f:int [line 117, column 14]\n *&return:int=(1 / n$0) [line 117, column 3]\n _=*&x:reference_field::X [line 117, column 18]\n n$2=_fun_reference_field::X_~X(&x:reference_field::X*) [line 117, column 18]\n EXIT_SCOPE(_,n$0,n$2,x,r); [line 117, column 18]\n APPLY_ABSTRACTION; [line 117, column 18]\n " shape="box"] +"val_F_div0#reference_field#8428286850923379914.8fdee85eabf77b0016437fa0006d373c_3" [label="3: Return Stmt \n n$0=*&r.x.f:int [line 117, column 14]\n *&return:int=(1 / n$0) [line 117, column 3]\n _=*&x:reference_field::X [line 117, column 18]\n n$2=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 117, column 18]\n EXIT_SCOPE(_,n$0,n$2,x,r); [line 117, column 18]\n APPLY_ABSTRACTION; [line 117, column 18]\n " shape="box"] "val_F_div0#reference_field#8428286850923379914.8fdee85eabf77b0016437fa0006d373c_3" -> "val_F_div0#reference_field#8428286850923379914.8fdee85eabf77b0016437fa0006d373c_2" ; @@ -250,7 +250,7 @@ digraph cfg { "val_I_div0#reference_field#17788064844610257149.11b45a3e82e229e7a7714480217c1af3_2" [label="2: Exit reference_field::val_I_div0 \n NULLIFY(&r); [line 126, column 1]\n NULLIFY(&x); [line 126, column 1]\n " color=yellow style=filled] -"val_I_div0#reference_field#17788064844610257149.11b45a3e82e229e7a7714480217c1af3_3" [label="3: Return Stmt \n n$0=*&r.i:int [line 125, column 14]\n *&return:int=(1 / n$0) [line 125, column 3]\n _=*&x:reference_field::X [line 125, column 16]\n n$2=_fun_reference_field::X_~X(&x:reference_field::X*) [line 125, column 16]\n EXIT_SCOPE(_,n$0,n$2,x,r); [line 125, column 16]\n APPLY_ABSTRACTION; [line 125, column 16]\n " shape="box"] +"val_I_div0#reference_field#17788064844610257149.11b45a3e82e229e7a7714480217c1af3_3" [label="3: Return Stmt \n n$0=*&r.i:int [line 125, column 14]\n *&return:int=(1 / n$0) [line 125, column 3]\n _=*&x:reference_field::X [line 125, column 16]\n n$2=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 125, column 16]\n EXIT_SCOPE(_,n$0,n$2,x,r); [line 125, column 16]\n APPLY_ABSTRACTION; [line 125, column 16]\n " shape="box"] "val_I_div0#reference_field#17788064844610257149.11b45a3e82e229e7a7714480217c1af3_3" -> "val_I_div0#reference_field#17788064844610257149.11b45a3e82e229e7a7714480217c1af3_2" ; @@ -277,7 +277,7 @@ digraph cfg { "val_getF_div0#reference_field#16910887455441500799.24fc3c9591435f1b92c06c5c7da4bd2e_2" [label="2: Exit reference_field::val_getF_div0 \n NULLIFY(&r); [line 134, column 1]\n NULLIFY(&x); [line 134, column 1]\n " color=yellow style=filled] -"val_getF_div0#reference_field#16910887455441500799.24fc3c9591435f1b92c06c5c7da4bd2e_3" [label="3: Return Stmt \n _=*&r:reference_field::Val [line 133, column 14]\n n$1=_fun_reference_field::Val_getF(&r:reference_field::Val&) [line 133, column 14]\n *&return:int=(1 / n$1) [line 133, column 3]\n _=*&x:reference_field::X [line 133, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 133, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,x,r); [line 133, column 21]\n APPLY_ABSTRACTION; [line 133, column 21]\n " shape="box"] +"val_getF_div0#reference_field#16910887455441500799.24fc3c9591435f1b92c06c5c7da4bd2e_3" [label="3: Return Stmt \n _=*&r:reference_field::Val [line 133, column 14]\n n$1=_fun_reference_field::Val_getF(&r:reference_field::Val&) [line 133, column 14]\n *&return:int=(1 / n$1) [line 133, column 3]\n _=*&x:reference_field::X [line 133, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 133, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,x,r); [line 133, column 21]\n APPLY_ABSTRACTION; [line 133, column 21]\n " shape="box"] "val_getF_div0#reference_field#16910887455441500799.24fc3c9591435f1b92c06c5c7da4bd2e_3" -> "val_getF_div0#reference_field#16910887455441500799.24fc3c9591435f1b92c06c5c7da4bd2e_2" ; @@ -304,7 +304,7 @@ digraph cfg { "val_getI_div0#reference_field#1916539470996695608.683d462cf87abbc81874a14e4872564a_2" [label="2: Exit reference_field::val_getI_div0 \n NULLIFY(&x); [line 142, column 1]\n NULLIFY(&r); [line 142, column 1]\n " color=yellow style=filled] -"val_getI_div0#reference_field#1916539470996695608.683d462cf87abbc81874a14e4872564a_3" [label="3: Return Stmt \n _=*&r:reference_field::Val [line 141, column 14]\n n$1=_fun_reference_field::Val_getI(&r:reference_field::Val&) [line 141, column 14]\n *&return:int=(1 / n$1) [line 141, column 3]\n _=*&x:reference_field::X [line 141, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) [line 141, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,r,x); [line 141, column 21]\n APPLY_ABSTRACTION; [line 141, column 21]\n " shape="box"] +"val_getI_div0#reference_field#1916539470996695608.683d462cf87abbc81874a14e4872564a_3" [label="3: Return Stmt \n _=*&r:reference_field::Val [line 141, column 14]\n n$1=_fun_reference_field::Val_getI(&r:reference_field::Val&) [line 141, column 14]\n *&return:int=(1 / n$1) [line 141, column 3]\n _=*&x:reference_field::X [line 141, column 21]\n n$3=_fun_reference_field::X_~X(&x:reference_field::X*) injected [line 141, column 21]\n EXIT_SCOPE(_,_,n$1,n$3,r,x); [line 141, column 21]\n APPLY_ABSTRACTION; [line 141, column 21]\n " shape="box"] "val_getI_div0#reference_field#1916539470996695608.683d462cf87abbc81874a14e4872564a_3" -> "val_getI_div0#reference_field#1916539470996695608.683d462cf87abbc81874a14e4872564a_2" ; 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 ac2e6a29f..9f59c29f5 100644 --- a/infer/tests/codetoanalyze/cpp/shared/types/inheritance_casts.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/types/inheritance_casts.cpp.dot @@ -62,7 +62,7 @@ digraph cfg { "getA#inheritance_casts(class inheritance_casts::A)#5702196550029280494.bf770d8fdf04212f16e0b3beb3d4c512_2" [label="2: Exit inheritance_casts::getA \n NULLIFY(&x); [line 22, column 1]\n " color=yellow style=filled] -"getA#inheritance_casts(class inheritance_casts::A)#5702196550029280494.bf770d8fdf04212f16e0b3beb3d4c512_3" [label="3: Return Stmt \n n$0=*&__return_param:inheritance_casts::A* [line 21, column 3]\n n$1=_fun_inheritance_casts::A_A(n$0:inheritance_casts::A*,&x:inheritance_casts::A&) [line 21, column 10]\n _=*&x:inheritance_casts::A [line 21, column 10]\n n$3=_fun_inheritance_casts::A_~A(&x:inheritance_casts::A*) [line 21, column 10]\n NULLIFY(&__return_param); [line 21, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,x); [line 21, column 10]\n APPLY_ABSTRACTION; [line 21, column 10]\n " shape="box"] +"getA#inheritance_casts(class inheritance_casts::A)#5702196550029280494.bf770d8fdf04212f16e0b3beb3d4c512_3" [label="3: Return Stmt \n n$0=*&__return_param:inheritance_casts::A* [line 21, column 3]\n n$1=_fun_inheritance_casts::A_A(n$0:inheritance_casts::A*,&x:inheritance_casts::A&) [line 21, column 10]\n _=*&x:inheritance_casts::A [line 21, column 10]\n n$3=_fun_inheritance_casts::A_~A(&x:inheritance_casts::A*) injected [line 21, column 10]\n NULLIFY(&__return_param); [line 21, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,__return_param,x); [line 21, column 10]\n APPLY_ABSTRACTION; [line 21, column 10]\n " shape="box"] "getA#inheritance_casts(class inheritance_casts::A)#5702196550029280494.bf770d8fdf04212f16e0b3beb3d4c512_3" -> "getA#inheritance_casts(class inheritance_casts::A)#5702196550029280494.bf770d8fdf04212f16e0b3beb3d4c512_2" ; @@ -81,7 +81,7 @@ digraph cfg { "getB#inheritance_casts(class inheritance_casts::B)#7572693428029732371.903fb8dc56797768f6ca6ebdf511cdaf_2" [label="2: Exit inheritance_casts::getB \n NULLIFY(&x); [line 17, column 1]\n " color=yellow style=filled] -"getB#inheritance_casts(class inheritance_casts::B)#7572693428029732371.903fb8dc56797768f6ca6ebdf511cdaf_3" [label="3: Return Stmt \n n$0=*&__return_param:inheritance_casts::B* [line 16, column 3]\n n$1=_fun_inheritance_casts::B_B(n$0:inheritance_casts::B*,&x:inheritance_casts::B&) [line 16, column 10]\n _=*&x:inheritance_casts::B [line 16, column 10]\n n$3=_fun_inheritance_casts::B_~B(&x:inheritance_casts::B*) [line 16, column 10]\n NULLIFY(&__return_param); [line 16, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 16, column 10]\n APPLY_ABSTRACTION; [line 16, column 10]\n " shape="box"] +"getB#inheritance_casts(class inheritance_casts::B)#7572693428029732371.903fb8dc56797768f6ca6ebdf511cdaf_3" [label="3: Return Stmt \n n$0=*&__return_param:inheritance_casts::B* [line 16, column 3]\n n$1=_fun_inheritance_casts::B_B(n$0:inheritance_casts::B*,&x:inheritance_casts::B&) [line 16, column 10]\n _=*&x:inheritance_casts::B [line 16, column 10]\n n$3=_fun_inheritance_casts::B_~B(&x:inheritance_casts::B*) injected [line 16, column 10]\n NULLIFY(&__return_param); [line 16, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 16, column 10]\n APPLY_ABSTRACTION; [line 16, column 10]\n " shape="box"] "getB#inheritance_casts(class inheritance_casts::B)#7572693428029732371.903fb8dc56797768f6ca6ebdf511cdaf_3" -> "getB#inheritance_casts(class inheritance_casts::B)#7572693428029732371.903fb8dc56797768f6ca6ebdf511cdaf_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 16ca82292..e7066bbab 100644 --- a/infer/tests/codetoanalyze/cpp/shared/types/return_struct.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/types/return_struct.cpp.dot @@ -7,7 +7,7 @@ digraph cfg { "get#return_struct(class return_struct::X)#15206943163581446197.86e6722206a41548a013622037de2b99_2" [label="2: Exit return_struct::get \n NULLIFY(&x); [line 23, column 1]\n " color=yellow style=filled] -"get#return_struct(class return_struct::X)#15206943163581446197.86e6722206a41548a013622037de2b99_3" [label="3: Return Stmt \n n$0=*&__return_param:return_struct::X* [line 22, column 3]\n n$1=_fun_return_struct::X_X(n$0:return_struct::X*,&x:return_struct::X&) [line 22, column 10]\n _=*&x:return_struct::X [line 22, column 10]\n n$3=_fun_return_struct::X_~X(&x:return_struct::X*) [line 22, column 10]\n NULLIFY(&__return_param); [line 22, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 22, column 10]\n APPLY_ABSTRACTION; [line 22, column 10]\n " shape="box"] +"get#return_struct(class return_struct::X)#15206943163581446197.86e6722206a41548a013622037de2b99_3" [label="3: Return Stmt \n n$0=*&__return_param:return_struct::X* [line 22, column 3]\n n$1=_fun_return_struct::X_X(n$0:return_struct::X*,&x:return_struct::X&) [line 22, column 10]\n _=*&x:return_struct::X [line 22, column 10]\n n$3=_fun_return_struct::X_~X(&x:return_struct::X*) injected [line 22, column 10]\n NULLIFY(&__return_param); [line 22, column 10]\n EXIT_SCOPE(_,n$0,n$1,n$3,x,__return_param); [line 22, column 10]\n APPLY_ABSTRACTION; [line 22, column 10]\n " shape="box"] "get#return_struct(class return_struct::X)#15206943163581446197.86e6722206a41548a013622037de2b99_3" -> "get#return_struct(class return_struct::X)#15206943163581446197.86e6722206a41548a013622037de2b99_2" ; @@ -26,7 +26,7 @@ digraph cfg { "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_2" [label="2: Exit return_struct::get_div0 \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$4); [line 28, column 1]\n NULLIFY(&x); [line 28, column 1]\n " color=yellow style=filled] -"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 27, column 14]\n *&return:int=(1 / n$0) [line 27, column 3]\n _=*&x:return_struct::X [line 27, column 16]\n n$2=_fun_return_struct::X_~X(&x:return_struct::X*) [line 27, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 27, column 16]\n APPLY_ABSTRACTION; [line 27, column 16]\n " shape="box"] +"get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 27, column 14]\n *&return:int=(1 / n$0) [line 27, column 3]\n _=*&x:return_struct::X [line 27, column 16]\n n$2=_fun_return_struct::X_~X(&x:return_struct::X*) injected [line 27, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 27, column 16]\n APPLY_ABSTRACTION; [line 27, column 16]\n " shape="box"] "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_3" -> "get_div0#return_struct#3543093399648500387.0c3db3a444952aefeee44e54da50327a_2" ; @@ -41,7 +41,7 @@ digraph cfg { "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_2" [label="2: Exit return_struct::get_div1 \n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$4); [line 40, column 1]\n NULLIFY(&x); [line 40, column 1]\n " color=yellow style=filled] -"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 39, column 14]\n *&return:int=(1 / n$0) [line 39, column 3]\n _=*&x:return_struct::X [line 39, column 16]\n n$2=_fun_return_struct::X_~X(&x:return_struct::X*) [line 39, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 39, column 16]\n APPLY_ABSTRACTION; [line 39, column 16]\n " shape="box"] +"get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 39, column 14]\n *&return:int=(1 / n$0) [line 39, column 3]\n _=*&x:return_struct::X [line 39, column 16]\n n$2=_fun_return_struct::X_~X(&x:return_struct::X*) injected [line 39, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 39, column 16]\n APPLY_ABSTRACTION; [line 39, column 16]\n " shape="box"] "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_3" -> "get_div1#return_struct#4287655186293816212.dabfacf04a7d838f8bdc3ef21786303d_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 f501eb983..97728fe1b 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 @@ -7,7 +7,7 @@ digraph cfg { "field_div0#struct_pass_by_value#10739265731582012189.309f906a63458fd1d3c6651d011f1020_2" [label="2: Exit struct_pass_by_value::field_div0 \n NULLIFY(&x); [line 43, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_construct_n$0); [line 43, column 1]\n NULLIFY(&y); [line 43, column 1]\n " color=yellow style=filled] -"field_div0#struct_pass_by_value#10739265731582012189.309f906a63458fd1d3c6651d011f1020_3" [label="3: Return Stmt \n n$1=_fun_struct_pass_by_value::X_X(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X*,&y.x:struct_pass_by_value::X&) [line 42, column 20]\n n$2=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X) [line 42, column 14]\n *&return:int=(1 / n$2) [line 42, column 3]\n _=*&x:struct_pass_by_value::X [line 42, column 23]\n n$4=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) [line 42, column 23]\n EXIT_SCOPE(_,n$1,n$2,n$4,y,x); [line 42, column 23]\n APPLY_ABSTRACTION; [line 42, column 23]\n " shape="box"] +"field_div0#struct_pass_by_value#10739265731582012189.309f906a63458fd1d3c6651d011f1020_3" [label="3: Return Stmt \n n$1=_fun_struct_pass_by_value::X_X(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X*,&y.x:struct_pass_by_value::X&) [line 42, column 20]\n n$2=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X) [line 42, column 14]\n *&return:int=(1 / n$2) [line 42, column 3]\n _=*&x:struct_pass_by_value::X [line 42, column 23]\n n$4=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) injected [line 42, column 23]\n EXIT_SCOPE(_,n$1,n$2,n$4,y,x); [line 42, column 23]\n APPLY_ABSTRACTION; [line 42, column 23]\n " shape="box"] "field_div0#struct_pass_by_value#10739265731582012189.309f906a63458fd1d3c6651d011f1020_3" -> "field_div0#struct_pass_by_value#10739265731582012189.309f906a63458fd1d3c6651d011f1020_2" ; @@ -37,7 +37,7 @@ digraph cfg { "param_get_copied_div0#struct_pass_by_value#5422600122206315156.a9ecc5bcf15beb35ee10b7d5c038ad8e_2" [label="2: Exit struct_pass_by_value::param_get_copied_div0 \n NULLIFY(&x); [line 49, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_construct_n$4); [line 49, column 1]\n " color=yellow style=filled] -"param_get_copied_div0#struct_pass_by_value#5422600122206315156.a9ecc5bcf15beb35ee10b7d5c038ad8e_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 48, column 14]\n *&return:int=(1 / n$0) [line 48, column 3]\n _=*&x:struct_pass_by_value::X [line 48, column 16]\n n$2=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) [line 48, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 48, column 16]\n APPLY_ABSTRACTION; [line 48, column 16]\n " shape="box"] +"param_get_copied_div0#struct_pass_by_value#5422600122206315156.a9ecc5bcf15beb35ee10b7d5c038ad8e_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 48, column 14]\n *&return:int=(1 / n$0) [line 48, column 3]\n _=*&x:struct_pass_by_value::X [line 48, column 16]\n n$2=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) injected [line 48, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 48, column 16]\n APPLY_ABSTRACTION; [line 48, column 16]\n " shape="box"] "param_get_copied_div0#struct_pass_by_value#5422600122206315156.a9ecc5bcf15beb35ee10b7d5c038ad8e_3" -> "param_get_copied_div0#struct_pass_by_value#5422600122206315156.a9ecc5bcf15beb35ee10b7d5c038ad8e_2" ; @@ -56,7 +56,7 @@ digraph cfg { "param_get_copied_div1#struct_pass_by_value#4678038335560999331.58ffd03114defd7dfa2ce1d8e7c84b46_2" [label="2: Exit struct_pass_by_value::param_get_copied_div1 \n NULLIFY(&0$?%__sil_tmp__temp_construct_n$4); [line 55, column 1]\n NULLIFY(&x); [line 55, column 1]\n " color=yellow style=filled] -"param_get_copied_div1#struct_pass_by_value#4678038335560999331.58ffd03114defd7dfa2ce1d8e7c84b46_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 54, column 14]\n *&return:int=(1 / n$0) [line 54, column 3]\n _=*&x:struct_pass_by_value::X [line 54, column 16]\n n$2=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) [line 54, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 54, column 16]\n APPLY_ABSTRACTION; [line 54, column 16]\n " shape="box"] +"param_get_copied_div1#struct_pass_by_value#4678038335560999331.58ffd03114defd7dfa2ce1d8e7c84b46_3" [label="3: Return Stmt \n n$0=*&x.f:int [line 54, column 14]\n *&return:int=(1 / n$0) [line 54, column 3]\n _=*&x:struct_pass_by_value::X [line 54, column 16]\n n$2=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) injected [line 54, column 16]\n EXIT_SCOPE(_,n$0,n$2,x); [line 54, column 16]\n APPLY_ABSTRACTION; [line 54, column 16]\n " shape="box"] "param_get_copied_div1#struct_pass_by_value#4678038335560999331.58ffd03114defd7dfa2ce1d8e7c84b46_3" -> "param_get_copied_div1#struct_pass_by_value#4678038335560999331.58ffd03114defd7dfa2ce1d8e7c84b46_2" ; @@ -108,7 +108,7 @@ digraph cfg { "var_div0#struct_pass_by_value#10764880494979445665.44da929aedf0cdc1afaea064cb399051_2" [label="2: Exit struct_pass_by_value::var_div0 \n NULLIFY(&0$?%__sil_tmp__temp_construct_n$0); [line 28, column 1]\n NULLIFY(&x); [line 28, column 1]\n " color=yellow style=filled] -"var_div0#struct_pass_by_value#10764880494979445665.44da929aedf0cdc1afaea064cb399051_3" [label="3: Return Stmt \n n$1=_fun_struct_pass_by_value::X_X(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X*,&x:struct_pass_by_value::X&) [line 27, column 20]\n n$2=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X) [line 27, column 14]\n *&return:int=(1 / n$2) [line 27, column 3]\n _=*&x:struct_pass_by_value::X [line 27, column 21]\n n$4=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) [line 27, column 21]\n EXIT_SCOPE(_,n$1,n$2,n$4,x); [line 27, column 21]\n APPLY_ABSTRACTION; [line 27, column 21]\n " shape="box"] +"var_div0#struct_pass_by_value#10764880494979445665.44da929aedf0cdc1afaea064cb399051_3" [label="3: Return Stmt \n n$1=_fun_struct_pass_by_value::X_X(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X*,&x:struct_pass_by_value::X&) [line 27, column 20]\n n$2=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X) [line 27, column 14]\n *&return:int=(1 / n$2) [line 27, column 3]\n _=*&x:struct_pass_by_value::X [line 27, column 21]\n n$4=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) injected [line 27, column 21]\n EXIT_SCOPE(_,n$1,n$2,n$4,x); [line 27, column 21]\n APPLY_ABSTRACTION; [line 27, column 21]\n " shape="box"] "var_div0#struct_pass_by_value#10764880494979445665.44da929aedf0cdc1afaea064cb399051_3" -> "var_div0#struct_pass_by_value#10764880494979445665.44da929aedf0cdc1afaea064cb399051_2" ; @@ -123,7 +123,7 @@ digraph cfg { "var_div1#struct_pass_by_value#11501824865066029482.b667f3a6d8153cf4e571282bd064fc22_2" [label="2: Exit struct_pass_by_value::var_div1 \n NULLIFY(&x); [line 33, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_construct_n$0); [line 33, column 1]\n " color=yellow style=filled] -"var_div1#struct_pass_by_value#11501824865066029482.b667f3a6d8153cf4e571282bd064fc22_3" [label="3: Return Stmt \n n$1=_fun_struct_pass_by_value::X_X(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X*,&x:struct_pass_by_value::X&) [line 32, column 20]\n n$2=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X) [line 32, column 14]\n *&return:int=(1 / n$2) [line 32, column 3]\n _=*&x:struct_pass_by_value::X [line 32, column 21]\n n$4=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) [line 32, column 21]\n EXIT_SCOPE(_,n$1,n$2,n$4,x); [line 32, column 21]\n APPLY_ABSTRACTION; [line 32, column 21]\n " shape="box"] +"var_div1#struct_pass_by_value#11501824865066029482.b667f3a6d8153cf4e571282bd064fc22_3" [label="3: Return Stmt \n n$1=_fun_struct_pass_by_value::X_X(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X*,&x:struct_pass_by_value::X&) [line 32, column 20]\n n$2=_fun_struct_pass_by_value::get_f(&0$?%__sil_tmp__temp_construct_n$0:struct_pass_by_value::X) [line 32, column 14]\n *&return:int=(1 / n$2) [line 32, column 3]\n _=*&x:struct_pass_by_value::X [line 32, column 21]\n n$4=_fun_struct_pass_by_value::X_~X(&x:struct_pass_by_value::X*) injected [line 32, column 21]\n EXIT_SCOPE(_,n$1,n$2,n$4,x); [line 32, column 21]\n APPLY_ABSTRACTION; [line 32, column 21]\n " shape="box"] "var_div1#struct_pass_by_value#11501824865066029482.b667f3a6d8153cf4e571282bd064fc22_3" -> "var_div1#struct_pass_by_value#11501824865066029482.b667f3a6d8153cf4e571282bd064fc22_2" ;