diff --git a/facebook-clang-plugins b/facebook-clang-plugins index 0f88b45c4..5f64a6842 160000 --- a/facebook-clang-plugins +++ b/facebook-clang-plugins @@ -1 +1 @@ -Subproject commit 0f88b45c44cd18d7681830ad814e812ad6288506 +Subproject commit 5f64a6842e9a85fc222f9a436c3d993cacb891b3 diff --git a/infer/src/clang/CType_decl.ml b/infer/src/clang/CType_decl.ml index 30d137fbe..4abd2a6f0 100644 --- a/infer/src/clang/CType_decl.ml +++ b/infer/src/clang/CType_decl.ml @@ -131,7 +131,7 @@ let rec get_struct_fields tenv decl = List.concat (base_class_fields @ List.map ~f:do_one_decl decl_list) -(* For a record declaration it returns/constructs the type *) +(** For a record declaration it returns/constructs the type *) and get_record_declaration_type tenv decl = let definition_decl = get_record_definition decl in match get_record_custom_type tenv definition_decl with diff --git a/infer/src/clang/CType_decl.mli b/infer/src/clang/CType_decl.mli index 5b3daef9d..af92cc839 100644 --- a/infer/src/clang/CType_decl.mli +++ b/infer/src/clang/CType_decl.mli @@ -15,10 +15,9 @@ val get_record_typename : ?tenv:Tenv.t -> Clang_ast_t.decl -> Typ.Name.t val add_types_from_decl_to_tenv : Tenv.t -> Clang_ast_t.decl -> Typ.desc -(* Adds the predefined types objc_class which is a struct, *) -(* and Class, which is a pointer to objc_class. *) - val add_predefined_types : Tenv.t -> unit +(** Add the predefined types objc_class which is a struct, and Class, which is a pointer to + objc_class. *) val qual_type_to_sil_type : Tenv.t -> Clang_ast_t.qual_type -> Typ.t diff --git a/infer/src/clang/ClangCommand.ml b/infer/src/clang/ClangCommand.ml index 5e9eb7337..11f52eac2 100644 --- a/infer/src/clang/ClangCommand.ml +++ b/infer/src/clang/ClangCommand.ml @@ -148,7 +148,7 @@ let clang_cc1_cmd_sanitizer cmd = else if String.equal option "-isystem" then match include_override_regex with | Some regexp when Str.string_match regexp arg 0 -> - fcp_dir ^/ "clang" ^/ "install" ^/ "lib" ^/ "clang" ^/ "5.0.0" ^/ "include" + fcp_dir ^/ "clang" ^/ "install" ^/ "lib" ^/ "clang" ^/ "7.0.0" ^/ "include" | _ -> arg else arg diff --git a/infer/src/clang/cArithmetic_trans.ml b/infer/src/clang/cArithmetic_trans.ml index be42d3875..43c47b0d9 100644 --- a/infer/src/clang/cArithmetic_trans.ml +++ b/infer/src/clang/cArithmetic_trans.ml @@ -16,11 +16,11 @@ module L = Logging (* CompoundAssignment. "binary_expression" is returned when we are calculating an expression*) (* "instructions" is not empty when the binary operator is actually a statement like an *) (* assignment. *) -let compound_assignment_binary_operation_instruction boi e1 typ e2 loc = +let compound_assignment_binary_operation_instruction boi_kind e1 typ e2 loc = let id = Ident.create_fresh Ident.knormal in let instr1 = Sil.Load (id, e1, typ, loc) in let e_res, instr_op = - match boi.Clang_ast_t.boi_kind with + match boi_kind with | `AddAssign -> let e1_plus_e2 = Exp.BinOp (Binop.PlusA, Exp.Var id, e2) in (e1, [Sil.Store (e1, typ, e1_plus_e2, loc)]) @@ -51,17 +51,14 @@ let compound_assignment_binary_operation_instruction boi e1 typ e2 loc = | `XorAssign -> let e1_xor_e2 = Exp.BinOp (Binop.BXor, Exp.Var id, e2) in (e1, [Sil.Store (e1, typ, e1_xor_e2, loc)]) - | _ -> - assert false in (e_res, instr1 :: instr_op) -(* Returns a pair ([binary_expression], instructions). "binary_expression" *) -(* is returned when we are calculating an expression "instructions" is not *) -(* empty when the binary operator is actually a statement like an *) -(* assignment. *) -let binary_operation_instruction boi e1 typ e2 loc = +(** Returns a pair ([binary_expression], instructions). "binary_expression" is returned when we are + calculating an expression "instructions" is not empty when the binary operator is actually a + statement like an assignment. *) +let binary_operation_instruction source_range boi e1 typ e2 loc = let binop_exp op = Exp.BinOp (op, e1, e2) in match boi.Clang_ast_t.boi_kind with (* Note: Pointers to members that are not statically known are not @@ -112,19 +109,22 @@ let binary_operation_instruction boi e1 typ e2 loc = (binop_exp Binop.LOr, []) | `Assign -> (e1, [Sil.Store (e1, typ, e2, loc)]) + | `Cmp -> + CFrontend_config.unimplemented __POS__ source_range "C++20 spaceship operator <=>" + (* C++20 spaceship operator <=>, TODO *) | `Comma -> (e2, []) (* C99 6.5.17-2 *) - | `MulAssign - | `DivAssign - | `RemAssign - | `AddAssign - | `SubAssign - | `ShlAssign - | `ShrAssign - | `AndAssign - | `XorAssign - | `OrAssign -> - compound_assignment_binary_operation_instruction boi e1 typ e2 loc + | ( `MulAssign + | `DivAssign + | `RemAssign + | `AddAssign + | `SubAssign + | `ShlAssign + | `ShrAssign + | `AndAssign + | `XorAssign + | `OrAssign ) as boi_kind -> + compound_assignment_binary_operation_instruction boi_kind e1 typ e2 loc let unary_operation_instruction translation_unit_context uoi e typ loc = @@ -243,6 +243,8 @@ let bin_op_to_string boi = "XorAssign" | `OrAssign -> "OrAssign" + | `Cmp -> + "Cmp" | `Comma -> "Comma" diff --git a/infer/src/clang/cArithmetic_trans.mli b/infer/src/clang/cArithmetic_trans.mli index 28b6aa5fa..9710ecc30 100644 --- a/infer/src/clang/cArithmetic_trans.mli +++ b/infer/src/clang/cArithmetic_trans.mli @@ -14,8 +14,11 @@ open! IStd val bin_op_to_string : Clang_ast_t.binary_operator_info -> string val binary_operation_instruction : - Clang_ast_t.binary_operator_info -> Exp.t -> Typ.t -> Exp.t -> Location.t - -> Exp.t * Sil.instr list + Clang_ast_t.source_range -> Clang_ast_t.binary_operator_info -> Exp.t -> Typ.t -> Exp.t + -> Location.t -> Exp.t * Sil.instr list +(** Returns a pair ([binary_expression], instructions). "binary_expression" is returned when we are + calculating an expression "instructions" is not empty when the binary operator is actually a + statement like an assignment. *) val unary_operation_instruction : CFrontend_config.translation_unit_context -> Clang_ast_t.unary_operator_info -> Exp.t -> Typ.t diff --git a/infer/src/clang/cAst_utils.ml b/infer/src/clang/cAst_utils.ml index fcdda05be..f538a5104 100644 --- a/infer/src/clang/cAst_utils.ml +++ b/infer/src/clang/cAst_utils.ml @@ -17,7 +17,7 @@ module F = Format type qual_type_to_sil_type = Tenv.t -> Clang_ast_t.qual_type -> Typ.t -let sanitize_name = Str.global_replace (Str.regexp "[/ ]") "_" +let sanitize_name s = Str.global_replace (Str.regexp "[/ ]") "_" s let get_qual_name qual_name_list = List.map ~f:sanitize_name qual_name_list |> QualifiedCppName.of_rev_list diff --git a/infer/src/clang/cMethod_trans.ml b/infer/src/clang/cMethod_trans.ml index f9ce3d190..674d0813d 100644 --- a/infer/src/clang/cMethod_trans.ml +++ b/infer/src/clang/cMethod_trans.ml @@ -486,6 +486,7 @@ let is_value {Clang_ast_t.qt_type_ptr} = | Some FunctionNoProtoType _ | Some ObjCObjectPointerType _ | Some NoneType _ + | Some DependentAddressSpaceType _ (* These types I don't know what they are. Be conservative and treat them as non value types *) | Some ObjCTypeParamType _ | Some PipeType _ diff --git a/infer/src/clang/cTrans.ml b/infer/src/clang/cTrans.ml index 08c64528e..01db5196a 100644 --- a/infer/src/clang/cTrans.ml +++ b/infer/src/clang/cTrans.ml @@ -956,8 +956,8 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s if List.exists ~f:(Exp.equal var_exp) res_trans_e2.initd_exps then ([], []) else let exp_op, instr_bin = - CArithmetic_trans.binary_operation_instruction binary_operator_info var_exp typ - sil_e2 sil_loc + CArithmetic_trans.binary_operation_instruction stmt_info.Clang_ast_t.si_source_range + binary_operator_info var_exp typ sil_e2 sil_loc in (* Create a node if the priority if free and there are instructions *) let creating_node = diff --git a/infer/src/clang/cTrans_utils.ml b/infer/src/clang/cTrans_utils.ml index 89bd51990..fdcdbc2e3 100644 --- a/infer/src/clang/cTrans_utils.ml +++ b/infer/src/clang/cTrans_utils.ml @@ -95,6 +95,7 @@ module Nodes = struct | `Or | `LAnd | `LOr + | `Cmp | `Comma -> false end diff --git a/infer/tests/codetoanalyze/cpp/frontend/Makefile b/infer/tests/codetoanalyze/cpp/frontend/Makefile index 1c55f02f9..69a631698 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/Makefile +++ b/infer/tests/codetoanalyze/cpp/frontend/Makefile @@ -11,7 +11,7 @@ TESTS_DIR=../../.. CLANG_OPTIONS = \ -nostdinc++ -isystem$(ROOT_DIR) -isystem$(CLANG_INCLUDES)/c++/v1/ \ -x c++ -std=c++11 -c -INFER_OPTIONS = --headers +INFER_OPTIONS = SOURCES = \ diff --git a/infer/tests/codetoanalyze/cpp/frontend/include_header/include_only.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/include_header/include_only.cpp.dot index 7555b9ee3..e69de29bb 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/include_header/include_only.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/include_header/include_only.cpp.dot @@ -1,25 +0,0 @@ -/* @generated */ -digraph cfg { -"div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_1" [label="1: Start div0_fun\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 19, column 1]\n " color=yellow style=filled] - - - "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_1" -> "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_3" ; -"div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_2" [label="2: Exit div0_fun \n " color=yellow style=filled] - - -"div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_3" [label="3: Return Stmt \n *&return:int=(1 / 0) [line 19, column 18]\n " shape="box"] - - - "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_3" -> "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_2" ; -"div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_1" [label="1: Start A_div0\nFormals: this:A*\nLocals: \n DECLARE_LOCALS(&return); [line 11, column 3]\n " color=yellow style=filled] - - - "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_1" -> "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_3" ; -"div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_2" [label="2: Exit A_div0 \n " color=yellow style=filled] - - -"div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_3" [label="3: Return Stmt \n *&return:int=(1 / 0) [line 11, column 16]\n " shape="box"] - - - "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_3" -> "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_2" ; -} diff --git a/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot b/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot index 99fa3bdd0..d6b66a07c 100644 --- a/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/frontend/include_header/include_templ.cpp.dot @@ -30,17 +30,6 @@ digraph cfg { "div0_B_A#16868528730428357658.9b8f4e2ce0bf464a2adbe53fb7a34f64_4" -> "div0_B_A#16868528730428357658.9b8f4e2ce0bf464a2adbe53fb7a34f64_3" ; -"div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_1" [label="1: Start div0_fun\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 19, column 1]\n " color=yellow style=filled] - - - "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_1" -> "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_3" ; -"div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_2" [label="2: Exit div0_fun \n " color=yellow style=filled] - - -"div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_3" [label="3: Return Stmt \n *&return:int=(1 / 0) [line 19, column 18]\n " shape="box"] - - - "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_3" -> "div0_fun#2527227853465305967.2e5cae3a3cba8aac956bae4ee8f04218_2" ; "div0_templ#3392200936327226954.953c7991c92a71a697b380b40ee16cec_1" [label="1: Start div0_templ\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 22, column 1]\n " color=yellow style=filled] @@ -85,17 +74,6 @@ digraph cfg { "div0_templ_A#15777392272986999827.c3e6f124c5921f718c539c423038b21a_3" -> "div0_templ_A#15777392272986999827.c3e6f124c5921f718c539c423038b21a_2" ; -"div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_1" [label="1: Start A_div0\nFormals: this:A*\nLocals: \n DECLARE_LOCALS(&return); [line 11, column 3]\n " color=yellow style=filled] - - - "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_1" -> "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_3" ; -"div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_2" [label="2: Exit A_div0 \n " color=yellow style=filled] - - -"div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_3" [label="3: Return Stmt \n *&return:int=(1 / 0) [line 11, column 16]\n " shape="box"] - - - "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_3" -> "div0#A#(13584343834474447238).86039fe8b473c93613d16ba01251732b_2" ; "div0#B#(9546261644456360892).132a3992ba75c40ad8966e1504521d7d_1" [label="1: Start B_div0\nFormals: this:B*\nLocals: \n DECLARE_LOCALS(&return); [line 16, column 3]\n " color=yellow style=filled] 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 82ad25a19..64193fb2e 100644 --- a/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/conditional/binary_conditional.cpp.dot @@ -1,6 +1,6 @@ /* @generated */ digraph cfg { -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_1" [label="1: Start binary_conditional::binaryConditional\nFormals: \nLocals: x:binary_conditional::X 0$?%__sil_tmpSIL_temp_conditional___n$4:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X a:binary_conditional::X \n DECLARE_LOCALS(&return,&x,&0$?%__sil_tmpSIL_temp_conditional___n$4,&0$?%__sil_tmpSIL_materialize_temp__n$6,&0$?%__sil_tmpSIL_materialize_temp__n$2,&a); [line 22, column 1]\n " color=yellow style=filled] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_1" [label="1: Start binary_conditional::binaryConditional\nFormals: \nLocals: x:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$3:binary_conditional::X 0$?%__sil_tmpSIL_temp_conditional___n$5:binary_conditional::X 0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X a:binary_conditional::X \n DECLARE_LOCALS(&return,&x,&0$?%__sil_tmpSIL_materialize_temp__n$3,&0$?%__sil_tmpSIL_temp_conditional___n$5,&0$?%__sil_tmpSIL_materialize_temp__n$2,&a); [line 22, column 1]\n " color=yellow style=filled] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_1" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_12" ; @@ -15,32 +15,32 @@ digraph cfg { "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_4" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_11" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" [label="5: Call _fun_binary_conditional::X_operator_bool \n n$5=_fun_binary_conditional::X_operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X&) [line 24, column 9]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" [label="5: Call _fun_binary_conditional::X_operator_bool \n _=*&0$?%__sil_tmpSIL_materialize_temp__n$3:binary_conditional::X [line 24, column 9]\n n$7=_fun_binary_conditional::X_operator_bool(&0$?%__sil_tmpSIL_materialize_temp__n$3:binary_conditional::X&) [line 24, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" ; "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" [label="6: Prune (true branch) \n PRUNE(n$5, true); [line 24, column 9]\n " shape="invhouse"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" [label="6: Prune (true branch) \n PRUNE(n$7, true); [line 24, column 9]\n " shape="invhouse"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_6" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" [label="7: Prune (false branch) \n PRUNE(!n$5, false); [line 24, column 9]\n " shape="invhouse"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" [label="7: Prune (false branch) \n PRUNE(!n$7, false); [line 24, column 9]\n " shape="invhouse"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_7" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" [label="8: ConditinalStmt Branch \n *&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$2 [line 24, column 9]\n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$6:binary_conditional::X&) [line 24, column 9]\n *&0$?%__sil_tmpSIL_temp_conditional___n$4:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$2 [line 24, column 9]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" [label="8: ConditinalStmt Branch \n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$3:binary_conditional::X&) [line 24, column 9]\n *&0$?%__sil_tmpSIL_temp_conditional___n$5:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$2 [line 24, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_8" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_4" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" [label="9: ConditinalStmt Branch \n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X*,&a:binary_conditional::X&) [line 24, column 19]\n *&0$?%__sil_tmpSIL_temp_conditional___n$4:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$2 [line 24, column 9]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" [label="9: ConditinalStmt Branch \n _fun_binary_conditional::X_X(&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X*,&a:binary_conditional::X&) [line 24, column 19]\n *&0$?%__sil_tmpSIL_temp_conditional___n$5:binary_conditional::X=&0$?%__sil_tmpSIL_materialize_temp__n$2 [line 24, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_9" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_4" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" [label="10: BinaryConditinalStmt Init \n _fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X*) [line 24, column 9]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" [label="10: BinaryConditinalStmt Init \n _fun_binary_conditional::getX(&0$?%__sil_tmpSIL_materialize_temp__n$3:binary_conditional::X*) [line 24, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_10" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_5" ; -"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_11" [label="11: DeclStmt \n n$7=*&0$?%__sil_tmpSIL_temp_conditional___n$4:binary_conditional::X [line 24, column 9]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X=n$7 [line 24, column 9]\n _fun_binary_conditional::X_X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X&) [line 24, column 9]\n " shape="box"] +"binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_11" [label="11: DeclStmt \n n$8=*&0$?%__sil_tmpSIL_temp_conditional___n$5:binary_conditional::X [line 24, column 9]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X=n$8 [line 24, column 9]\n _fun_binary_conditional::X_X(&x:binary_conditional::X*,&0$?%__sil_tmpSIL_materialize_temp__n$2:binary_conditional::X&) [line 24, column 9]\n " shape="box"] "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_11" -> "binaryConditional#binary_conditional#15641211300815748363.a0f7e256e24b7117cb94c66e5aa27a30_3" ; diff --git a/infer/tests/codetoanalyze/cpp/shared/constructors/std_init_list.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/constructors/std_init_list.cpp.dot index a2b7721e3..ed80316bf 100644 --- a/infer/tests/codetoanalyze/cpp/shared/constructors/std_init_list.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/constructors/std_init_list.cpp.dot @@ -47,26 +47,4 @@ digraph cfg { "X#X#{15236476731743367432}.ce83f097b510e48ce3d42aa5df1bb3be_9" -> "X#X#{15236476731743367432}.ce83f097b510e48ce3d42aa5df1bb3be_5" ; -"begin#initializer_list#std#(13723715755918736548).65e91b39b4a18334df4ab6fcebc9626c_1" [label="1: Start std::initializer_list_begin\nFormals: this:std::initializer_list*\nLocals: \n DECLARE_LOCALS(&return); [line 87, column 5]\n " color=yellow style=filled] - - - "begin#initializer_list#std#(13723715755918736548).65e91b39b4a18334df4ab6fcebc9626c_1" -> "begin#initializer_list#std#(13723715755918736548).65e91b39b4a18334df4ab6fcebc9626c_3" ; -"begin#initializer_list#std#(13723715755918736548).65e91b39b4a18334df4ab6fcebc9626c_2" [label="2: Exit std::initializer_list_begin \n " color=yellow style=filled] - - -"begin#initializer_list#std#(13723715755918736548).65e91b39b4a18334df4ab6fcebc9626c_3" [label="3: Return Stmt \n n$0=*&this:std::initializer_list const * [line 89, column 48]\n n$1=*n$0.__begin_:int const * [line 89, column 48]\n *&return:int const *=n$1 [line 89, column 41]\n " shape="box"] - - - "begin#initializer_list#std#(13723715755918736548).65e91b39b4a18334df4ab6fcebc9626c_3" -> "begin#initializer_list#std#(13723715755918736548).65e91b39b4a18334df4ab6fcebc9626c_2" ; -"end#initializer_list#std#(17457336561148167662).71ab51b73def3fc4c022ec4075346bdb_1" [label="1: Start std::initializer_list_end\nFormals: this:std::initializer_list*\nLocals: \n DECLARE_LOCALS(&return); [line 91, column 5]\n " color=yellow style=filled] - - - "end#initializer_list#std#(17457336561148167662).71ab51b73def3fc4c022ec4075346bdb_1" -> "end#initializer_list#std#(17457336561148167662).71ab51b73def3fc4c022ec4075346bdb_3" ; -"end#initializer_list#std#(17457336561148167662).71ab51b73def3fc4c022ec4075346bdb_2" [label="2: Exit std::initializer_list_end \n " color=yellow style=filled] - - -"end#initializer_list#std#(17457336561148167662).71ab51b73def3fc4c022ec4075346bdb_3" [label="3: Return Stmt \n n$0=*&this:std::initializer_list const * [line 93, column 48]\n n$1=*n$0.__begin_:int const * [line 93, column 48]\n n$2=*&this:std::initializer_list const * [line 93, column 59]\n n$3=*n$2.__size_:unsigned long [line 93, column 59]\n *&return:int const *=(n$1 + n$3) [line 93, column 41]\n " shape="box"] - - - "end#initializer_list#std#(17457336561148167662).71ab51b73def3fc4c022ec4075346bdb_3" -> "end#initializer_list#std#(17457336561148167662).71ab51b73def3fc4c022ec4075346bdb_2" ; } diff --git a/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot b/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot index a3744fdb3..2159730d5 100644 --- a/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot +++ b/infer/tests/codetoanalyze/cpp/shared/methods/byvals.cpp.dot @@ -11,28 +11,6 @@ digraph cfg { "dummy_struct#__infer_globals_initializer_pass_by_val.24fe54080733cebf362d2b34e691bb44_3" -> "dummy_struct#__infer_globals_initializer_pass_by_val.24fe54080733cebf362d2b34e691bb44_2" ; -"piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_1" [label="1: Start __infer_globals_initializer_std::piecewise_construct\nFormals: \nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$0:std::piecewise_construct_t \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$0); [line 296, column 1]\n " color=yellow style=filled] - - - "piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_1" -> "piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_3" ; -"piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_2" [label="2: Exit __infer_globals_initializer_std::piecewise_construct \n " color=yellow style=filled] - - -"piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_3" [label="3: DeclStmt \n _fun_std::piecewise_construct_t_piecewise_construct_t(&0$?%__sil_tmpSIL_materialize_temp__n$0:std::piecewise_construct_t*) [line 296, column 55]\n _fun_std::piecewise_construct_t_piecewise_construct_t(&#GB$std::piecewise_construct:std::piecewise_construct_t const *,&0$?%__sil_tmpSIL_materialize_temp__n$0:std::piecewise_construct_t&) [line 296, column 55]\n " shape="box"] - - - "piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_3" -> "piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_2" ; -"value#__numeric_type#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_1" [label="1: Start __infer_globals_initializer_std::__numeric_type::value\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 1738, column 4]\n " color=yellow style=filled] - - - "value#__numeric_type#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_1" -> "value#__numeric_type#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_3" ; -"value#__numeric_type#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_2" [label="2: Exit __infer_globals_initializer_std::__numeric_type::value \n " color=yellow style=filled] - - -"value#__numeric_type#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_3" [label="3: DeclStmt \n *&#GB$std::__numeric_type::value:_Bool=1 [line 1738, column 4]\n " shape="box"] - - - "value#__numeric_type#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_3" -> "value#__numeric_type#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_2" ; "perfect_forwarding_by_ref#pass_by_val#7578991627406493712.47db45acfc842e77ec927aa5a23ec0ee_1" [label="1: Start pass_by_val::perfect_forwarding_by_ref\nFormals: __return_param:pass_by_val::Id*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$2:int 0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id b:int a:int \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$2,&0$?%__sil_tmpSIL_materialize_temp__n$1,&b,&a); [line 64, column 1]\n " color=yellow style=filled] @@ -52,116 +30,28 @@ digraph cfg { "perfect_forwarding_by_ref#pass_by_val#7578991627406493712.47db45acfc842e77ec927aa5a23ec0ee_5" -> "perfect_forwarding_by_ref#pass_by_val#7578991627406493712.47db45acfc842e77ec927aa5a23ec0ee_4" ; -"forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_1" [label="1: Start std::forward\nFormals: __t:int&\nLocals: \n DECLARE_LOCALS(&return); [line 2185, column 1]\n " color=yellow style=filled] +"forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_1" [label="1: Start std::forward\nFormals: __t:int&\nLocals: \n DECLARE_LOCALS(&return); [line 2217, column 1]\n " color=yellow style=filled] "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_1" -> "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" ; "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" [label="2: Exit std::forward \n " color=yellow style=filled] -"forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2189, column 31]\n *&return:int&=n$0 [line 2189, column 5]\n " shape="box"] +"forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2221, column 31]\n *&return:int&=n$0 [line 2221, column 5]\n " shape="box"] "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" -> "forward#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" ; -"forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_1" [label="1: Start std::forward\nFormals: __t:int&\nLocals: \n DECLARE_LOCALS(&return); [line 2185, column 1]\n " color=yellow style=filled] +"forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_1" [label="1: Start std::forward\nFormals: __t:int&\nLocals: \n DECLARE_LOCALS(&return); [line 2217, column 1]\n " color=yellow style=filled] "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_1" -> "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" ; "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" [label="2: Exit std::forward \n " color=yellow style=filled] -"forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2189, column 31]\n *&return:int&=n$0 [line 2189, column 5]\n " shape="box"] +"forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2221, column 31]\n *&return:int&=n$0 [line 2221, column 5]\n " shape="box"] "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" -> "forward#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" ; -"__convert_to_integral#std#18203946051870259524.786d56ace7d9e294cffb725c2e0b3002_1" [label="1: Start std::__convert_to_integral\nFormals: __val:int\nLocals: \n DECLARE_LOCALS(&return); [line 4590, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203946051870259524.786d56ace7d9e294cffb725c2e0b3002_1" -> "__convert_to_integral#std#18203946051870259524.786d56ace7d9e294cffb725c2e0b3002_3" ; -"__convert_to_integral#std#18203946051870259524.786d56ace7d9e294cffb725c2e0b3002_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203946051870259524.786d56ace7d9e294cffb725c2e0b3002_3" [label="3: Return Stmt \n n$0=*&__val:int [line 4591, column 47]\n *&return:int=n$0 [line 4591, column 40]\n " shape="box"] - - - "__convert_to_integral#std#18203946051870259524.786d56ace7d9e294cffb725c2e0b3002_3" -> "__convert_to_integral#std#18203946051870259524.786d56ace7d9e294cffb725c2e0b3002_2" ; -"__convert_to_integral#std#18203944952358631313.9a3242fdeb903dc6e8702bc93bb6ac67_1" [label="1: Start std::__convert_to_integral\nFormals: __val:int\nLocals: \n DECLARE_LOCALS(&return); [line 4609, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203944952358631313.9a3242fdeb903dc6e8702bc93bb6ac67_1" -> "__convert_to_integral#std#18203944952358631313.9a3242fdeb903dc6e8702bc93bb6ac67_3" ; -"__convert_to_integral#std#18203944952358631313.9a3242fdeb903dc6e8702bc93bb6ac67_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203944952358631313.9a3242fdeb903dc6e8702bc93bb6ac67_3" [label="3: Return Stmt \n n$0=*&__val:int [line 4610, column 61]\n *&return:int=n$0 [line 4610, column 54]\n " shape="box"] - - - "__convert_to_integral#std#18203944952358631313.9a3242fdeb903dc6e8702bc93bb6ac67_3" -> "__convert_to_integral#std#18203944952358631313.9a3242fdeb903dc6e8702bc93bb6ac67_2" ; -"__convert_to_integral#std#18203949350405144157.9f218a91fc3ee0ab3f5a9696bcfafca0_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned int\nLocals: \n DECLARE_LOCALS(&return); [line 4593, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203949350405144157.9f218a91fc3ee0ab3f5a9696bcfafca0_1" -> "__convert_to_integral#std#18203949350405144157.9f218a91fc3ee0ab3f5a9696bcfafca0_3" ; -"__convert_to_integral#std#18203949350405144157.9f218a91fc3ee0ab3f5a9696bcfafca0_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203949350405144157.9f218a91fc3ee0ab3f5a9696bcfafca0_3" [label="3: Return Stmt \n n$0=*&__val:unsigned int [line 4594, column 57]\n *&return:unsigned int=n$0 [line 4594, column 50]\n " shape="box"] - - - "__convert_to_integral#std#18203949350405144157.9f218a91fc3ee0ab3f5a9696bcfafca0_3" -> "__convert_to_integral#std#18203949350405144157.9f218a91fc3ee0ab3f5a9696bcfafca0_2" ; -"__convert_to_integral#std#18203943852847003102.8f2920b58f70b12797286a40dfc4147a_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned int\nLocals: \n DECLARE_LOCALS(&return); [line 4612, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203943852847003102.8f2920b58f70b12797286a40dfc4147a_1" -> "__convert_to_integral#std#18203943852847003102.8f2920b58f70b12797286a40dfc4147a_3" ; -"__convert_to_integral#std#18203943852847003102.8f2920b58f70b12797286a40dfc4147a_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203943852847003102.8f2920b58f70b12797286a40dfc4147a_3" [label="3: Return Stmt \n n$0=*&__val:unsigned int [line 4613, column 63]\n *&return:unsigned int=n$0 [line 4613, column 56]\n " shape="box"] - - - "__convert_to_integral#std#18203943852847003102.8f2920b58f70b12797286a40dfc4147a_3" -> "__convert_to_integral#std#18203943852847003102.8f2920b58f70b12797286a40dfc4147a_2" ; -"__convert_to_integral#std#18203942753335374891.29ee25a15ba8a308015d3a4aeb5da775_1" [label="1: Start std::__convert_to_integral\nFormals: __val:long\nLocals: \n DECLARE_LOCALS(&return); [line 4596, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203942753335374891.29ee25a15ba8a308015d3a4aeb5da775_1" -> "__convert_to_integral#std#18203942753335374891.29ee25a15ba8a308015d3a4aeb5da775_3" ; -"__convert_to_integral#std#18203942753335374891.29ee25a15ba8a308015d3a4aeb5da775_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203942753335374891.29ee25a15ba8a308015d3a4aeb5da775_3" [label="3: Return Stmt \n n$0=*&__val:long [line 4597, column 49]\n *&return:long=n$0 [line 4597, column 42]\n " shape="box"] - - - "__convert_to_integral#std#18203942753335374891.29ee25a15ba8a308015d3a4aeb5da775_3" -> "__convert_to_integral#std#18203942753335374891.29ee25a15ba8a308015d3a4aeb5da775_2" ; -"__convert_to_integral#std#18203941653823746680.91314e051bc6514bf07264f2739b3232_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned long\nLocals: \n DECLARE_LOCALS(&return); [line 4599, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203941653823746680.91314e051bc6514bf07264f2739b3232_1" -> "__convert_to_integral#std#18203941653823746680.91314e051bc6514bf07264f2739b3232_3" ; -"__convert_to_integral#std#18203941653823746680.91314e051bc6514bf07264f2739b3232_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203941653823746680.91314e051bc6514bf07264f2739b3232_3" [label="3: Return Stmt \n n$0=*&__val:unsigned long [line 4600, column 67]\n *&return:unsigned long=n$0 [line 4600, column 60]\n " shape="box"] - - - "__convert_to_integral#std#18203941653823746680.91314e051bc6514bf07264f2739b3232_3" -> "__convert_to_integral#std#18203941653823746680.91314e051bc6514bf07264f2739b3232_2" ; -"__convert_to_integral#std#18203964743567939111.a71ca871e4c0fed0ecd2c8fe001f34de_1" [label="1: Start std::__convert_to_integral\nFormals: __val:long long\nLocals: \n DECLARE_LOCALS(&return); [line 4602, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203964743567939111.a71ca871e4c0fed0ecd2c8fe001f34de_1" -> "__convert_to_integral#std#18203964743567939111.a71ca871e4c0fed0ecd2c8fe001f34de_3" ; -"__convert_to_integral#std#18203964743567939111.a71ca871e4c0fed0ecd2c8fe001f34de_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203964743567939111.a71ca871e4c0fed0ecd2c8fe001f34de_3" [label="3: Return Stmt \n n$0=*&__val:long long [line 4603, column 59]\n *&return:long long=n$0 [line 4603, column 52]\n " shape="box"] - - - "__convert_to_integral#std#18203964743567939111.a71ca871e4c0fed0ecd2c8fe001f34de_3" -> "__convert_to_integral#std#18203964743567939111.a71ca871e4c0fed0ecd2c8fe001f34de_2" ; -"__convert_to_integral#std#18203963644056310900.85b99415f2ab9597604bfc9d379da576_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned long long\nLocals: \n DECLARE_LOCALS(&return); [line 4605, column 1]\n " color=yellow style=filled] - - - "__convert_to_integral#std#18203963644056310900.85b99415f2ab9597604bfc9d379da576_1" -> "__convert_to_integral#std#18203963644056310900.85b99415f2ab9597604bfc9d379da576_3" ; -"__convert_to_integral#std#18203963644056310900.85b99415f2ab9597604bfc9d379da576_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled] - - -"__convert_to_integral#std#18203963644056310900.85b99415f2ab9597604bfc9d379da576_3" [label="3: Return Stmt \n n$0=*&__val:unsigned long long [line 4606, column 76]\n *&return:unsigned long long=n$0 [line 4606, column 69]\n " shape="box"] - - - "__convert_to_integral#std#18203963644056310900.85b99415f2ab9597604bfc9d379da576_3" -> "__convert_to_integral#std#18203963644056310900.85b99415f2ab9597604bfc9d379da576_2" ; "make_id#pass_by_val#6647322778693099135.2f2dd9bec9bb8475abd845248a5b9203_1" [label="1: Start pass_by_val::make_id\nFormals: args:int& args:int& args:int& __return_param:pass_by_val::Id*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 60, column 1]\n " color=yellow style=filled] @@ -312,57 +202,4 @@ digraph cfg { "PlainStruct#PlainStruct#pass_by_val#{2553093086388184854|constexpr}.e295b1e7e1c5b638011ce60f4cd77a28_4" -> "PlainStruct#PlainStruct#pass_by_val#{2553093086388184854|constexpr}.e295b1e7e1c5b638011ce60f4cd77a28_3" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_1" [label="1: Start std::__libcpp_debug_info___libcpp_debug_info\nFormals: this:std::__libcpp_debug_info*\nLocals: \n DECLARE_LOCALS(&return); [line 60, column 3]\n " color=yellow style=filled] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_1" -> "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_6" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_2" [label="2: Exit std::__libcpp_debug_info___libcpp_debug_info \n " color=yellow style=filled] - - -"__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_3" [label="3: Constructor Init \n n$0=*&this:std::__libcpp_debug_info* [line 62, column 58]\n *n$0.__msg_:char const *=null [line 62, column 58]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_3" -> "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_2" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_4" [label="4: Constructor Init \n n$1=*&this:std::__libcpp_debug_info* [line 62, column 40]\n *n$1.__pred_:char const *=null [line 62, column 40]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_4" -> "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_3" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_5" [label="5: Constructor Init \n n$2=*&this:std::__libcpp_debug_info* [line 62, column 27]\n *n$2.__line_:int=-1 [line 62, column 27]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_5" -> "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_4" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_6" [label="6: Constructor Init \n n$3=*&this:std::__libcpp_debug_info* [line 62, column 9]\n *n$3.__file_:char const *=null [line 62, column 9]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_6" -> "__libcpp_debug_info#__libcpp_debug_info#std#{18246572089206113855|constexpr}.fd9011b14d3ab2edb72213ed316b618d_5" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_1" [label="1: Start std::__libcpp_debug_info___libcpp_debug_info\nFormals: this:std::__libcpp_debug_info* __f:char const * __l:int __p:char const * __m:char const *\nLocals: \n DECLARE_LOCALS(&return); [line 63, column 3]\n " color=yellow style=filled] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_1" -> "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_6" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_2" [label="2: Exit std::__libcpp_debug_info___libcpp_debug_info \n " color=yellow style=filled] - - -"__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_3" [label="3: Constructor Init \n n$0=*&this:std::__libcpp_debug_info* [line 65, column 49]\n n$1=*&__m:char const * [line 65, column 56]\n *n$0.__msg_:char const *=n$1 [line 65, column 49]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_3" -> "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_2" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_4" [label="4: Constructor Init \n n$2=*&this:std::__libcpp_debug_info* [line 65, column 35]\n n$3=*&__p:char const * [line 65, column 43]\n *n$2.__pred_:char const *=n$3 [line 65, column 35]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_4" -> "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_3" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_5" [label="5: Constructor Init \n n$4=*&this:std::__libcpp_debug_info* [line 65, column 21]\n n$5=*&__l:int [line 65, column 29]\n *n$4.__line_:int=n$5 [line 65, column 21]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_5" -> "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_4" ; -"__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_6" [label="6: Constructor Init \n n$6=*&this:std::__libcpp_debug_info* [line 65, column 7]\n n$7=*&__f:char const * [line 65, column 15]\n *n$6.__file_:char const *=n$7 [line 65, column 7]\n " shape="box"] - - - "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_6" -> "__libcpp_debug_info#__libcpp_debug_info#std#{3815799194266645070|constexpr}.ec3a927eb76c2c43593f28c012f0756c_5" ; -"piecewise_construct_t#piecewise_construct_t#std#{17358076369527506903|constexpr}.eb35b80e50c40a44a47b01aa6cf939e5_1" [label="1: Start std::piecewise_construct_t_piecewise_construct_t\nFormals: this:std::piecewise_construct_t* __param_0:std::piecewise_construct_t&\nLocals: \n DECLARE_LOCALS(&return); [line 292, column 29]\n " color=yellow style=filled] - - - "piecewise_construct_t#piecewise_construct_t#std#{17358076369527506903|constexpr}.eb35b80e50c40a44a47b01aa6cf939e5_1" -> "piecewise_construct_t#piecewise_construct_t#std#{17358076369527506903|constexpr}.eb35b80e50c40a44a47b01aa6cf939e5_2" ; -"piecewise_construct_t#piecewise_construct_t#std#{17358076369527506903|constexpr}.eb35b80e50c40a44a47b01aa6cf939e5_2" [label="2: Exit std::piecewise_construct_t_piecewise_construct_t \n " color=yellow style=filled] - - }