diff --git a/infer/src/IR/Procdesc.ml b/infer/src/IR/Procdesc.ml index 674b9d361..6191095d4 100644 --- a/infer/src/IR/Procdesc.ml +++ b/infer/src/IR/Procdesc.ml @@ -32,6 +32,30 @@ module Node = struct let equal_id = [%compare.equal: id] + type destruction_kind = + | DestrBreakStmt + | DestrContinueStmt + | DestrFields + | DestrReturnStmt + | DestrScope + | DestrVirtualBase + [@@deriving compare] + + let string_of_destruction_kind = function + | DestrBreakStmt -> + "break" + | DestrContinueStmt -> + "continue" + | DestrFields -> + "fields" + | DestrReturnStmt -> + "return" + | DestrScope -> + "Scope" + | DestrVirtualBase -> + "virtual base" + + type stmt_nodekind = | AssertionFailure | BetweenJoinAndExit @@ -48,7 +72,7 @@ module Node = struct | CXXTypeidExpr | DeclStmt | DefineBody - | Destruction + | Destruction of destruction_kind | ExceptionHandler | ExceptionsSink | FallbackNode @@ -268,8 +292,8 @@ module Node = struct F.pp_print_string fmt "DeclStmt" | DefineBody -> F.pp_print_string fmt "define_body" - | Destruction -> - F.pp_print_string fmt "Destruction" + | Destruction kind -> + F.fprintf fmt "Destruction(%s)" (string_of_destruction_kind kind) | ExceptionHandler -> F.pp_print_string fmt "exception handler" | ExceptionsSink -> @@ -779,7 +803,7 @@ let is_connected proc_desc = let is_exit_node n = match Node.get_kind n with Node.Exit_node -> true | _ -> false in let is_between_join_and_exit_node n = match Node.get_kind n with - | Node.Stmt_node BetweenJoinAndExit | Node.Stmt_node Destruction -> ( + | Node.Stmt_node (BetweenJoinAndExit | Destruction _) -> ( match Node.get_succs n with [n'] when is_exit_node n' -> true | _ -> false ) | _ -> false diff --git a/infer/src/IR/Procdesc.mli b/infer/src/IR/Procdesc.mli index c5f842ba9..dfabf43e8 100644 --- a/infer/src/IR/Procdesc.mli +++ b/infer/src/IR/Procdesc.mli @@ -28,6 +28,14 @@ module Node : sig val equal_id : id -> id -> bool + type destruction_kind = + | DestrBreakStmt + | DestrContinueStmt + | DestrFields + | DestrReturnStmt + | DestrScope + | DestrVirtualBase + (** kind of statement node *) type stmt_nodekind = | AssertionFailure @@ -45,7 +53,7 @@ module Node : sig | CXXTypeidExpr | DeclStmt | DefineBody - | Destruction + | Destruction of destruction_kind | ExceptionHandler | ExceptionsSink | FallbackNode diff --git a/infer/src/clang/cTrans.ml b/infer/src/clang/cTrans.ml index a46c829fc..5342b0a03 100644 --- a/infer/src/clang/cTrans.ml +++ b/infer/src/clang/cTrans.ml @@ -1366,8 +1366,9 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s CLocation.location_of_stmt_info context.translation_unit_context.source_file stmt_info_loc in Some - (PriorityNode.compute_results_to_parent trans_state_pri sil_loc ~node_name:Destruction - stmt_info_loc ~return:(mk_fresh_void_exp_typ ()) all_res_trans) + (PriorityNode.compute_results_to_parent trans_state_pri sil_loc + ~node_name:(Destruction DestrVirtualBase) stmt_info_loc + ~return:(mk_fresh_void_exp_typ ()) all_res_trans) and cxx_inject_field_destructors_in_destructor_body trans_state stmt_info = @@ -1422,11 +1423,12 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s CLocation.location_of_stmt_info context.translation_unit_context.source_file stmt_info in Some - (PriorityNode.compute_results_to_parent trans_state_pri sil_loc ~node_name:Destruction - stmt_info' ~return:(mk_fresh_void_exp_typ ()) all_res_trans) + (PriorityNode.compute_results_to_parent trans_state_pri sil_loc + ~node_name:(Destruction DestrFields) stmt_info' ~return:(mk_fresh_void_exp_typ ()) + all_res_trans) - and inject_destructors trans_state stmt_info = + and inject_destructors destr_kind trans_state stmt_info = let context = trans_state.context in if not (CGeneral_utils.is_cpp_translation context.translation_unit_context) then None else @@ -1468,8 +1470,9 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s CLocation.location_of_stmt_info context.translation_unit_context.source_file stmt_info in Some - (PriorityNode.compute_results_to_parent trans_state_pri sil_loc ~node_name:Destruction - stmt_info' ~return:(mk_fresh_void_exp_typ ()) all_res_trans) + (PriorityNode.compute_results_to_parent trans_state_pri sil_loc + ~node_name:(Destruction destr_kind) stmt_info' ~return:(mk_fresh_void_exp_typ ()) + all_res_trans) and compoundStmt_trans trans_state stmt_info stmt_list = @@ -1480,7 +1483,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s | Some (Clang_ast_t.ReturnStmt _) -> None | _ -> - inject_destructors trans_state stmt_info + inject_destructors Procdesc.Node.DestrScope trans_state stmt_info in (* Injecting destructor call nodes at the end of the compound statement *) let succ_nodes = @@ -2563,7 +2566,9 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s () in let mk_ret_node instrs = - let destr_trans_result = inject_destructors trans_state_pri stmt_info in + let destr_trans_result = + inject_destructors Procdesc.Node.DestrReturnStmt trans_state_pri stmt_info + in check_destructor_translation destr_trans_result ; let is_destructor = match procname with @@ -3213,7 +3218,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s match trans_state.continuation with | Some bn -> ( let trans_state' = {trans_state with succ_nodes= bn.break} in - match inject_destructors trans_state' stmt_info with + match inject_destructors Procdesc.Node.DestrBreakStmt trans_state' stmt_info with | Some ({control= {root_nodes= _ :: _}} as destr_trans_result) -> {destr_trans_result with control= {destr_trans_result.control with leaf_nodes= []}} | Some {control= {root_nodes= []}} | None -> @@ -3229,7 +3234,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s match trans_state.continuation with | Some bn -> ( let trans_state' = {trans_state with succ_nodes= bn.continue} in - match inject_destructors trans_state' stmt_info with + match inject_destructors Procdesc.Node.DestrContinueStmt trans_state' stmt_info with | Some ({control= {root_nodes= _ :: _}} as destr_trans_result) -> {destr_trans_result with control= {destr_trans_result.control with leaf_nodes= []}} | Some {control= {root_nodes= []}} | None -> @@ -3255,9 +3260,11 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s stmt_info ret_typ stmts + and instruction trans_state instr = instruction_log trans_state instr + (** Translates a clang instruction into SIL instructions. It takes a a [trans_state] containing current info on the translation and it returns a [trans_result].*) - and instruction = + and instruction_log = (* log errors only at the innermost recursive call *) let logged_error = ref false in fun trans_state instr -> @@ -3270,7 +3277,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s (Pp.to_string ~f:Clang_ast_proj.get_stmt_kind_string) instr pp_pointer instr ; let trans_result = - try instruction_aux trans_state instr + try instruction_translate trans_state instr with e -> IExn.reraise_after e ~f:(fun () -> let should_log_error = not !logged_error in @@ -3315,7 +3322,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s trans_result - and instruction_aux trans_state (instr : Clang_ast_t.stmt) = + and instruction_translate trans_state (instr : Clang_ast_t.stmt) = match instr with | GotoStmt (stmt_info, _, {Clang_ast_t.gsi_label= label_name; _}) -> gotoStmt_trans trans_state stmt_info label_name @@ -3330,7 +3337,7 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s | ConstantExpr (_, stmt_list, _) -> ( match stmt_list with | [stmt] -> - instruction_aux trans_state stmt + instruction_translate trans_state stmt | stmts -> L.die InternalError "Expected exactly one statement in ConstantExpr, got %d" (List.length stmts) ) 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 eb44f0400..30caecdf2 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>*) 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" [label="3: Destruction(Scope) \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**) 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" [label="3: Destruction(fields) \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**) 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" [label="3: Destruction(virtual base) \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 eb44f0400..30caecdf2 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>*) 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" [label="3: Destruction(Scope) \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**) 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" [label="3: Destruction(fields) \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**) 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" [label="3: Destruction(virtual base) \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 eb44f0400..30caecdf2 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>*) 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" [label="3: Destruction(Scope) \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**) 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" [label="3: Destruction(fields) \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**) 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" [label="3: Destruction(virtual base) \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 eb44f0400..30caecdf2 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>*) 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" [label="3: Destruction(Scope) \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**) 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" [label="3: Destruction(fields) \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**) 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" [label="3: Destruction(virtual base) \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 3464dc228..d00e15748 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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="7: Destruction(Scope) \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*) injected [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(Scope) \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*) 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" [label="12: Destruction(break) \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$18=_fun_break_scope::X::~X(&x4:break_scope::X*) injected [line 87, column 5]\n EXIT_SCOPE(_,n$18,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(Scope) \n _=*&x4:break_scope::X [line 87, column 5]\n n$18=_fun_break_scope::X::~X(&x4:break_scope::X*) injected [line 87, column 5]\n EXIT_SCOPE(_,n$18,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$16); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_return_n$13); [line 64, column 1]\n NULLIFY(&x2); [line 64, column 1]\n NULLIFY(&x1); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$6); [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*) 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" [label="3: Destruction(Scope) \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$24=_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" [label="14: Destruction(Scope) \n _=*&x1:break_scope::X [line 61, column 5]\n n$24=_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$27=_fun_break_scope::X::~X(&x1:break_scope::X*) injected [line 60, column 7]\n EXIT_SCOPE(_,n$27,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(break) \n _=*&x1:break_scope::X [line 60, column 7]\n n$27=_fun_break_scope::X::~X(&x1:break_scope::X*) injected [line 60, column 7]\n EXIT_SCOPE(_,n$27,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_tmp__temp_return_n$21); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$13); [line 53, column 1]\n NULLIFY(&x2); [line 53, column 1]\n NULLIFY(&x1); [line 53, column 1]\n NULLIFY(&x); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$37); [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*) 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" [label="3: Destruction(Scope) \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$29=_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" [label="14: Destruction(Scope) \n _=*&x2:break_scope::X [line 51, column 5]\n n$29=_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$32=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 50, column 7]\n EXIT_SCOPE(_,n$32,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(break) \n _=*&x2:break_scope::X [line 50, column 7]\n n$32=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 50, column 7]\n EXIT_SCOPE(_,n$32,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*) 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" [label="3: Destruction(Scope) \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$9=_fun_break_scope::X::~X(&x4:break_scope::X*) injected [line 125, column 5]\n EXIT_SCOPE(_,n$9,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(Scope) \n _=*&x4:break_scope::X [line 125, column 5]\n n$9=_fun_break_scope::X::~X(&x4:break_scope::X*) injected [line 125, column 5]\n EXIT_SCOPE(_,n$9,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$13=_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" [label="8: Destruction(Scope) \n _=*&x3:break_scope::X [line 122, column 5]\n n$13=_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$16=_fun_break_scope::X::~X(&x3:break_scope::X*) injected [line 121, column 7]\n EXIT_SCOPE(_,n$16,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(break) \n _=*&x3:break_scope::X [line 121, column 7]\n n$16=_fun_break_scope::X::~X(&x3:break_scope::X*) injected [line 121, column 7]\n EXIT_SCOPE(_,n$16,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$20=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 118, column 5]\n EXIT_SCOPE(_,n$20,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(Scope) \n _=*&x2:break_scope::X [line 118, column 5]\n n$20=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 118, column 5]\n EXIT_SCOPE(_,n$20,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*) 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" [label="3: Destruction(Scope) \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*) injected [line 72, column 5]\n APPLY_ABSTRACTION; [line 72, column 5]\n " shape="box"] +"test_while1#break_scope#17740518799763849642.b3409b963f3ece06bd5b04dd968e5c61_10" [label="10: Destruction(Scope) \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*) 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" [label="11: Destruction(break) \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$14=_fun_break_scope::X::~X(&x4:break_scope::X*) injected [line 74, column 5]\n EXIT_SCOPE(_,n$14,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(Scope) \n _=*&x4:break_scope::X [line 74, column 5]\n n$14=_fun_break_scope::X::~X(&x4:break_scope::X*) injected [line 74, column 5]\n EXIT_SCOPE(_,n$14,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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="7: Destruction(Scope) \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*) injected [line 98, column 5]\n APPLY_ABSTRACTION; [line 98, column 5]\n " shape="box"] +"test_while2#break_scope#17250772168162981325.38013d039ed950814e06274bca56c75d_11" [label="11: Destruction(Scope) \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*) 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" [label="12: Destruction(break) \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*) 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" [label="3: Destruction(Scope) \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$8=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 109, column 3]\n EXIT_SCOPE(_,n$8,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(Scope) \n _=*&x2:break_scope::X [line 109, column 3]\n n$8=_fun_break_scope::X::~X(&x2:break_scope::X*) injected [line 109, column 3]\n EXIT_SCOPE(_,n$8,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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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 9b7b11fb7..0c16fdf8c 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*) 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" [label="3: Destruction(virtual base) \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 2532ecbd0..52df5fd89 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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="7: Destruction(Scope) \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*) injected [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(Scope) \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*) 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" [label="12: Destruction(continue) \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$18=_fun_continue_scope::X::~X(&x4:continue_scope::X*) injected [line 87, column 5]\n EXIT_SCOPE(_,n$18,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(Scope) \n _=*&x4:continue_scope::X [line 87, column 5]\n n$18=_fun_continue_scope::X::~X(&x4:continue_scope::X*) injected [line 87, column 5]\n EXIT_SCOPE(_,n$18,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$16); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmp__temp_return_n$13); [line 64, column 1]\n NULLIFY(&x2); [line 64, column 1]\n NULLIFY(&x1); [line 64, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$6); [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*) 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" [label="3: Destruction(Scope) \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$24=_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" [label="14: Destruction(Scope) \n _=*&x1:continue_scope::X [line 61, column 5]\n n$24=_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$27=_fun_continue_scope::X::~X(&x1:continue_scope::X*) injected [line 60, column 7]\n EXIT_SCOPE(_,n$27,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(continue) \n _=*&x1:continue_scope::X [line 60, column 7]\n n$27=_fun_continue_scope::X::~X(&x1:continue_scope::X*) injected [line 60, column 7]\n EXIT_SCOPE(_,n$27,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_tmp__temp_return_n$21); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$13); [line 53, column 1]\n NULLIFY(&x2); [line 53, column 1]\n NULLIFY(&x1); [line 53, column 1]\n NULLIFY(&x); [line 53, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$37); [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*) 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" [label="3: Destruction(Scope) \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$29=_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" [label="14: Destruction(Scope) \n _=*&x2:continue_scope::X [line 51, column 5]\n n$29=_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$32=_fun_continue_scope::X::~X(&x2:continue_scope::X*) injected [line 50, column 7]\n EXIT_SCOPE(_,n$32,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(continue) \n _=*&x2:continue_scope::X [line 50, column 7]\n n$32=_fun_continue_scope::X::~X(&x2:continue_scope::X*) injected [line 50, column 7]\n EXIT_SCOPE(_,n$32,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*) 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" [label="3: Destruction(Scope) \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*) injected [line 72, column 5]\n APPLY_ABSTRACTION; [line 72, column 5]\n " shape="box"] +"test_while1#continue_scope#7540876780991944911.b81085ce953e1cd4f035dc0322ac5331_10" [label="10: Destruction(Scope) \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*) 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" [label="11: Destruction(continue) \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$14=_fun_continue_scope::X::~X(&x4:continue_scope::X*) injected [line 74, column 5]\n EXIT_SCOPE(_,n$14,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(Scope) \n _=*&x4:continue_scope::X [line 74, column 5]\n n$14=_fun_continue_scope::X::~X(&x4:continue_scope::X*) injected [line 74, column 5]\n EXIT_SCOPE(_,n$14,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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="7: Destruction(Scope) \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*) injected [line 98, column 5]\n APPLY_ABSTRACTION; [line 98, column 5]\n " shape="box"] +"test_while2#continue_scope#4169552136172626704.fb057544ed7a6c8312596f53be6b62dc_11" [label="11: Destruction(Scope) \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*) 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" [label="12: Destruction(continue) \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*) 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" [label="3: Destruction(Scope) \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$8=_fun_continue_scope::X::~X(&x2:continue_scope::X*) injected [line 109, column 3]\n EXIT_SCOPE(_,n$8,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(Scope) \n _=*&x2:continue_scope::X [line 109, column 3]\n n$8=_fun_continue_scope::X::~X(&x2:continue_scope::X*) injected [line 109, column 3]\n EXIT_SCOPE(_,n$8,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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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 c15e87a3c..3942cea21 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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(fields) \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*) 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" [label="4: Destruction(Scope) \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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(fields) \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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(fields) \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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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 c22fee9a0..4152af929 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/destructors/scope.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/destructors/scope.cpp.dot @@ -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*) 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" [label="3: Destruction(Scope) \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*) injected [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(Scope) \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$13=_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$15=_fun_destructor_scope::X::~X(&x2:destructor_scope::X*) injected [line 52, column 3]\n EXIT_SCOPE(_,_,n$13,n$15,x2,y2); [line 52, column 3]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_7" [label="7: Destruction(Scope) \n _=*&y2:destructor_scope::Y [line 52, column 3]\n n$13=_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$15=_fun_destructor_scope::X::~X(&x2:destructor_scope::X*) injected [line 52, column 3]\n EXIT_SCOPE(_,_,n$13,n$15,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$18=_fun_destructor_scope::X::~X(&x3:destructor_scope::X*) injected [line 51, column 5]\n EXIT_SCOPE(_,n$18,x3); [line 51, column 5]\n " shape="box"] +"test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_8" [label="8: Destruction(Scope) \n _=*&x3:destructor_scope::X [line 51, column 5]\n n$18=_fun_destructor_scope::X::~X(&x3:destructor_scope::X*) injected [line 51, column 5]\n EXIT_SCOPE(_,n$18,x3); [line 51, column 5]\n " shape="box"] "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_8" -> "test1#destructor_scope#3167061604758065234.d3af82d2ddb9b80d2c9930cb62bbbffa_7" ; @@ -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*) injected [line 66, column 1]\n APPLY_ABSTRACTION; [line 66, column 1]\n " shape="box"] +"test2#destructor_scope#2993434300384255445.24bf3f4c27c1719ee94d608a0df996b1_3" [label="3: Destruction(Scope) \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" ; @@ -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*) 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" [label="3: Destruction(fields) \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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(fields) \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*) 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" [label="4: Destruction(Scope) \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" ; @@ -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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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 00b59d796..d678e023c 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*) 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" [label="3: Destruction(virtual base) \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*) 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" [label="3: Destruction(virtual base) \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 aa262baee..7ccaca727 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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="3: Destruction(Scope) \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 9907028aa..ef3b55ad6 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*) 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" [label="3: Destruction(Scope) \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(&a); [line 28, column 1]\n NULLIFY(&x); [line 28, column 1]\n NULLIFY(&0$?%__sil_tmpSIL_materialize_temp__n$12); [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*) 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" [label="3: Destruction(Scope) \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" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot index ca8fbd1be..0416382ab 100644 --- a/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/lambda/lambda1.cpp.dot @@ -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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="3: Destruction(Scope) \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*) 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" [label="3: Destruction(fields) \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*) 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" [label="3: Destruction(virtual base) \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/virtual_methods.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/virtual_methods.cpp.dot index 7e6a7a75a..6d9a5130e 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/virtual_methods.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/virtual_methods.cpp.dot @@ -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*) 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" [label="3: Destruction(fields) \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*) 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" [label="3: Destruction(virtual base) \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" ;