[frontend] Additional information for the backend to distinguish between pass-by-val args and pass-by-ref args

Reviewed By: akotulski

Differential Revision: D5534444

fbshipit-source-id: 6d13644
master
Jia Chen 8 years ago committed by Facebook Github Bot
parent 766a73d80c
commit a718ebe8ec

@ -46,6 +46,7 @@ type t =
; exceptions: string list (** exceptions thrown by the procedure *)
; formals: (Mangled.t * Typ.t) list (** name and type of formal parameters *)
; const_formals: int list (** list of indices of formals that are const-qualified *)
; by_vals: int list (** list of indices of formals that are passed by-value *)
; func_attributes: PredSymb.func_attribute list
; is_abstract: bool (** the procedure is abstract *)
; is_bridge_method: bool (** the procedure is a bridge method *)
@ -77,6 +78,7 @@ let default proc_name language =
; exceptions= []
; formals= []
; const_formals= []
; by_vals= []
; func_attributes= []
; is_abstract= false
; is_bridge_method= false

@ -45,6 +45,7 @@ type t =
; exceptions: string list (** exceptions thrown by the procedure *)
; formals: (Mangled.t * Typ.t) list (** name and type of formal parameters *)
; const_formals: int list (** list of indices of formals that are const-qualified *)
; by_vals: int list (** list of indices of formals that are passed by-value *)
; func_attributes: PredSymb.func_attribute list
; is_abstract: bool (** the procedure is abstract *)
; is_bridge_method: bool (** the procedure is a bridge method *)

@ -1091,9 +1091,14 @@ let pp_proplist_parsed2dotty_file filename plist =
let pp_cfgnodename pname fmt (n: Procdesc.Node.t) =
F.fprintf fmt "\"%s_%d\"" (Typ.Procname.to_filename pname) (Procdesc.Node.get_id n :> int)
let pp_etlist fmt etl =
List.iter
~f:(fun (id, ty) -> Format.fprintf fmt " %a:%a" Mangled.pp id (Typ.pp_full Pp.text) ty)
let pp_etlist byvals fmt etl =
List.iteri
~f:(fun index (id, ({Typ.desc} as ty)) ->
let is_ptr = match desc with Tptr _ -> true | _ -> false in
let byval_mark =
if is_ptr && List.mem byvals index ~equal:Int.equal then "(byval)" else ""
in
Format.fprintf fmt " %a:%a%s" Mangled.pp id (Typ.pp_full Pp.text) ty byval_mark)
etl
let pp_local_list fmt etl =
@ -1106,11 +1111,12 @@ let pp_cfgnodelabel pdesc fmt (n: Procdesc.Node.t) =
match Procdesc.Node.get_kind n with
| Procdesc.Node.Start_node pname
-> let pname_string = Typ.Procname.to_string pname in
Format.fprintf fmt "Start %s\\nFormals: %a\\nLocals: %a" pname_string pp_etlist
let attributes = Procdesc.get_attributes pdesc in
let byvals = attributes.ProcAttributes.by_vals in
Format.fprintf fmt "Start %s\\nFormals: %a\\nLocals: %a" pname_string (pp_etlist byvals)
(Procdesc.get_formals pdesc) pp_local_list (Procdesc.get_locals pdesc) ;
if List.length (Procdesc.get_captured pdesc) <> 0 then
Format.fprintf fmt "\\nCaptured: %a" pp_local_list (Procdesc.get_captured pdesc) ;
let attributes = Procdesc.get_attributes pdesc in
let method_annotation = attributes.ProcAttributes.method_annotation in
if not (Annot.Method.is_empty method_annotation) then
Format.fprintf fmt "\\nAnnotation: %a" (Annot.Method.pp pname_string) method_annotation

@ -403,6 +403,76 @@ let is_pointer_to_const {Clang_ast_t.qt_type_ptr} =
| _
-> false
let is_value {Clang_ast_t.qt_type_ptr} =
match qt_type_ptr with
| Clang_ast_extend.Builtin _
(* We rely on the assumption here that Clang_ast_extend.ReferenceOf is only created for pass-by-value structs. *)
(* TODO: Create a dedicated variant in Clang_ast_extend for pass-by-val params *)
| Clang_ast_extend.ReferenceOf _
-> true
| Clang_ast_types.TypePtr.Ptr _
-> let rec is_value_raw qt_type_ptr =
match CAst_utils.get_type qt_type_ptr with
| Some BuiltinType _
| Some ComplexType _
| Some DependentSizedExtVectorType _
| Some VectorType _
| Some ExtVectorType _
| Some RecordType _
| Some EnumType _
| Some InjectedClassNameType _
| Some ObjCObjectType _
| Some ObjCInterfaceType _
-> true
| Some AdjustedType (_, {Clang_ast_t.qt_type_ptr})
| Some DecayedType (_, {Clang_ast_t.qt_type_ptr})
| Some ParenType (_, {Clang_ast_t.qt_type_ptr})
| Some DecltypeType (_, {Clang_ast_t.qt_type_ptr})
| Some AtomicType (_, {Clang_ast_t.qt_type_ptr})
-> is_value_raw qt_type_ptr
| Some TypedefType (_, {Clang_ast_t.tti_child_type})
-> is_value_raw tti_child_type.Clang_ast_t.qt_type_ptr
(* These types could be value types, and we try our best to resolve them *)
| Some AttributedType ({Clang_ast_t.ti_desugared_type}, _)
| Some TypeOfExprType {Clang_ast_t.ti_desugared_type}
| Some TypeOfType {Clang_ast_t.ti_desugared_type}
| Some UnaryTransformType {Clang_ast_t.ti_desugared_type}
| Some ElaboratedType {Clang_ast_t.ti_desugared_type}
| Some AutoType {Clang_ast_t.ti_desugared_type}
| Some DependentNameType {Clang_ast_t.ti_desugared_type}
| Some DeducedTemplateSpecializationType {Clang_ast_t.ti_desugared_type}
| Some TemplateSpecializationType {Clang_ast_t.ti_desugared_type}
| Some DependentTemplateSpecializationType {Clang_ast_t.ti_desugared_type}
| Some TemplateTypeParmType {Clang_ast_t.ti_desugared_type}
| Some SubstTemplateTypeParmType {Clang_ast_t.ti_desugared_type}
| Some SubstTemplateTypeParmPackType {Clang_ast_t.ti_desugared_type}
| Some PackExpansionType {Clang_ast_t.ti_desugared_type}
| Some UnresolvedUsingType {Clang_ast_t.ti_desugared_type} -> (
match ti_desugared_type with Some ptr -> is_value_raw ptr | None -> false )
(* These types are known to be non-value types *)
| Some PointerType _
| Some BlockPointerType _
| Some LValueReferenceType _
| Some RValueReferenceType _
| Some MemberPointerType _
| Some ConstantArrayType _
| Some IncompleteArrayType _
| Some VariableArrayType _
| Some DependentSizedArrayType _
| Some FunctionProtoType _
| Some FunctionNoProtoType _
| Some ObjCObjectPointerType _
| Some NoneType _
(* These types I don't know what they are. Be conservative and treat them as non value types *)
| Some ObjCTypeParamType _
| Some PipeType _
| None
-> false
in
is_value_raw qt_type_ptr
| _
-> false
(** Returns a list of the indices of expressions in [args] which point to const-typed values. Each
index is offset by [shift]. *)
let get_const_args_indices ~shift args =
@ -416,6 +486,11 @@ let get_const_args_indices ~shift args =
in
aux [] args
let get_byval_args_indices ~shift args =
List.filter_mapi args ~f:(fun index (_, qual_type) ->
let index' = index + shift in
Option.some_if (is_value qual_type) index' )
let get_objc_property_accessor ms =
let open Clang_ast_t in
match CAst_utils.get_decl_opt (CMethod_signature.ms_get_pointer_to_property_opt ms) with
@ -477,9 +552,16 @@ let create_local_procdesc ?(set_objc_accessor_attr= false) trans_unit_ctx cfg te
get_const_args_indices ~shift:(List.length captured_mangled)
(CMethod_signature.ms_get_args ms)
in
let by_vals =
get_byval_args_indices ~shift:(List.length captured_mangled)
(CMethod_signature.ms_get_args ms)
in
let source_range = CMethod_signature.ms_get_loc ms in
L.(debug Capture Verbose) "@\nCreating a new procdesc for function: '%s'@\n@." pname ;
L.(debug Capture Verbose) "@\nms = %s@\n@." (CMethod_signature.ms_to_string ms) ;
L.(debug Capture Verbose)
"@\nbyvals = [ %s ]@\n@."
(String.concat ~sep:", " (List.map by_vals ~f:string_of_int)) ;
let loc_start = CLocation.get_sil_location_from_range trans_unit_ctx source_range true in
let loc_exit = CLocation.get_sil_location_from_range trans_unit_ctx source_range false in
let ret_type = get_return_type tenv ms in
@ -492,6 +574,7 @@ let create_local_procdesc ?(set_objc_accessor_attr= false) trans_unit_ctx cfg te
ProcAttributes.captured= captured_mangled
; formals
; const_formals
; by_vals
; access
; func_attributes= attributes
; is_defined= defined

@ -52,7 +52,7 @@ digraph iCFG {
"test#_Z4testv.1b928d988491fdd2fa78fcb048d46e8c_13" -> "test#_Z4testv.1b928d988491fdd2fa78fcb048d46e8c_12" ;
"operator!=#_Zne8iteratorS_.497d6549b2907c91697671b3c62dc141_1" [label="1: Start operator!=\nFormals: i1:iterator& i2:iterator&\nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$0); [line 21]\n " color=yellow style=filled]
"operator!=#_Zne8iteratorS_.497d6549b2907c91697671b3c62dc141_1" [label="1: Start operator!=\nFormals: i1:iterator&(byval) i2:iterator&(byval)\nLocals: 0$?%__sil_tmpSIL_temp_conditional___n$0:_Bool \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_temp_conditional___n$0); [line 21]\n " color=yellow style=filled]
"operator!=#_Zne8iteratorS_.497d6549b2907c91697671b3c62dc141_1" -> "operator!=#_Zne8iteratorS_.497d6549b2907c91697671b3c62dc141_4" ;

@ -11,7 +11,7 @@ digraph iCFG {
"test#_Z4testv.1b928d988491fdd2fa78fcb048d46e8c_3" -> "test#_Z4testv.1b928d988491fdd2fa78fcb048d46e8c_2" ;
"Person#Person#{_ZN6PersonC1E6Insets}.b24b6c175679d264f58881e04318df0d_1" [label="1: Start Person_Person\nFormals: this:Person* l:Insets const &\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled]
"Person#Person#{_ZN6PersonC1E6Insets}.b24b6c175679d264f58881e04318df0d_1" [label="1: Start Person_Person\nFormals: this:Person* l:Insets const &(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 14]\n " color=yellow style=filled]
"Person#Person#{_ZN6PersonC1E6Insets}.b24b6c175679d264f58881e04318df0d_1" -> "Person#Person#{_ZN6PersonC1E6Insets}.b24b6c175679d264f58881e04318df0d_3" ;

@ -11,7 +11,7 @@ digraph iCFG {
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
"X#X#{_ZN1XC1ESt16initializer_listIiE}.778d0439d25462bdf7ed466490fcf946_1" [label="1: Start X_X\nFormals: this:X* list:std::initializer_list<int>&\nLocals: i:int const * \n DECLARE_LOCALS(&return,&i); [line 14]\n " color=yellow style=filled]
"X#X#{_ZN1XC1ESt16initializer_listIiE}.778d0439d25462bdf7ed466490fcf946_1" [label="1: Start X_X\nFormals: this:X* list:std::initializer_list<int>&(byval)\nLocals: i:int const * \n DECLARE_LOCALS(&return,&i); [line 14]\n " color=yellow style=filled]
"X#X#{_ZN1XC1ESt16initializer_listIiE}.778d0439d25462bdf7ed466490fcf946_1" -> "X#X#{_ZN1XC1ESt16initializer_listIiE}.778d0439d25462bdf7ed466490fcf946_4" ;

@ -0,0 +1,69 @@
/*
* Copyright (c) 2017 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#include <utility>
namespace pass_by_val {
struct PlainStruct {
int x;
int* y;
};
PlainStruct dummy_struct{0, nullptr};
int plain_struct_by_val(PlainStruct p) { return p.x + *(p.y); }
int plain_struct_by_ref(PlainStruct& lref,
PlainStruct&& rref,
PlainStruct* ptr) {
return lref.x + rref.x + ptr->x;
}
typedef PlainStruct PlainStructTypeDef1;
using PlainStructTypeDef2 = PlainStructTypeDef1;
typedef PlainStruct* PlainStructPtrTypeDef1;
using PlainStructPtrTypeDef2 = const PlainStruct*;
int type_alias_by_val(PlainStructTypeDef1 p1, PlainStructTypeDef2 p2) {
return plain_struct_by_val(p1) + plain_struct_by_val(p2);
}
int type_alias_by_ref(PlainStructPtrTypeDef1 p1, PlainStructPtrTypeDef2 p2) {
return p1->x + p2->x;
}
int decltype_by_val(decltype(dummy_struct) p) { return p.x + *(p.y); }
// decltype(paren_expr) follows different type deduction rules
int decltype_by_ref(decltype((dummy_struct)) p) { return p.x + *(p.y); }
template <typename T>
struct Id {
using Result = T;
Id(T, T&, T&&) {}
};
int dependent_by_val(Id<PlainStruct>::Result p) { return p.x + *(p.y); }
int dependent_by_ref(Id<const PlainStruct&>::Result p) { return p.x + *(p.y); }
double to_double(int x) { return x; }
template <int N>
struct Tricky {
using Result = decltype(to_double(N));
};
double tricky_dependent_by_val(Tricky<8>::Result t) { return t; }
template <typename T, typename... Args>
Id<T> make_id(Args&&... args) {
return Id<T>(std::forward<Args>(args)...);
}
Id<int> perfect_forwarding_by_ref() {
int a = 0, b = 1;
return make_id<int>(a, b, 2);
}
} // namespace pass_by_val

@ -0,0 +1,368 @@
/* @generated */
digraph iCFG {
"dummy_struct#__infer_globals_initializer_pass_by_val.24fe54080733cebf362d2b34e691bb44_1" [label="1: Start __infer_globals_initializer_pass_by_val::dummy_struct\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 17]\n " color=yellow style=filled]
"dummy_struct#__infer_globals_initializer_pass_by_val.24fe54080733cebf362d2b34e691bb44_1" -> "dummy_struct#__infer_globals_initializer_pass_by_val.24fe54080733cebf362d2b34e691bb44_3" ;
"dummy_struct#__infer_globals_initializer_pass_by_val.24fe54080733cebf362d2b34e691bb44_2" [label="2: Exit __infer_globals_initializer_pass_by_val::dummy_struct \n " color=yellow style=filled]
"dummy_struct#__infer_globals_initializer_pass_by_val.24fe54080733cebf362d2b34e691bb44_3" [label="3: DeclStmt \n *&#GB<codetoanalyze/cpp/shared/methods/byvals.cpp>$pass_by_val::dummy_struct.x:int=0 [line 17]\n *&#GB<codetoanalyze/cpp/shared/methods/byvals.cpp>$pass_by_val::dummy_struct.y:int*=null [line 17]\n " shape="box"]
"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]\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]\n _fun_std::piecewise_construct_t_piecewise_construct_t(&#GB<codetoanalyze/cpp/shared/methods/byvals.cpp|const>$std::piecewise_construct:std::piecewise_construct_t const *,&0$?%__sil_tmpSIL_materialize_temp__n$0:std::piecewise_construct_t&) [line 296]\n " shape="box"]
"piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_3" -> "piecewise_construct#__infer_globals_initializer_std.a38961a5a6e5f6ecbae901423d9145cf_2" ;
"value#__numeric_type<void>#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_1" [label="1: Start __infer_globals_initializer_std::__numeric_type<void>::value\nFormals: \nLocals: \n DECLARE_LOCALS(&return); [line 1738]\n " color=yellow style=filled]
"value#__numeric_type<void>#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_1" -> "value#__numeric_type<void>#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_3" ;
"value#__numeric_type<void>#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_2" [label="2: Exit __infer_globals_initializer_std::__numeric_type<void>::value \n " color=yellow style=filled]
"value#__numeric_type<void>#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_3" [label="3: DeclStmt \n *&#GB<codetoanalyze/cpp/shared/methods/byvals.cpp>$std::__numeric_type<void>::value:_Bool=1 [line 1738]\n " shape="box"]
"value#__numeric_type<void>#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_3" -> "value#__numeric_type<void>#__infer_globals_initializer_std.47862f77402cf0b9a8f85342f9963960_2" ;
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_1" [label="1: Start pass_by_val::perfect_forwarding_by_ref\nFormals: __return_param:pass_by_val::Id<int>*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$2:int 0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id<int> 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]\n " color=yellow style=filled]
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_1" -> "perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_5" ;
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_2" [label="2: Exit pass_by_val::perfect_forwarding_by_ref \n " color=yellow style=filled]
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_3" [label="3: Return Stmt \n n$0=*&__return_param:pass_by_val::Id<int>* [line 66]\n *&0$?%__sil_tmpSIL_materialize_temp__n$2:int=2 [line 66]\n _fun_pass_by_val::make_id<int,_int_&,_int_&,_int>(&a:int&,&b:int&,&0$?%__sil_tmpSIL_materialize_temp__n$2:int&,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id<int>*) [line 66]\n _fun_pass_by_val::Id<int>_Id(n$0:pass_by_val::Id<int>*,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id<int>&) [line 66]\n " shape="box"]
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_3" -> "perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_2" ;
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_4" [label="4: DeclStmt \n *&b:int=1 [line 65]\n " shape="box"]
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_4" -> "perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_3" ;
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_5" [label="5: DeclStmt \n *&a:int=0 [line 65]\n " shape="box"]
"perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_5" -> "perfect_forwarding_by_ref#pass_by_val#_ZN11pass_by_val25perfect_forwarding_by_refEv.70e005ea8116a923450a0f8cc86a7027_4" ;
"forward<int>#std#_ZNSt3__17forwardIiEEOT_RNS_16remove_referenceIS1_E4typeE.523eb59a8ab2703c1dd26505ac3ca320_1" [label="1: Start std::forward<int>\nFormals: __t:int&\nLocals: \n DECLARE_LOCALS(&return); [line 2185]\n " color=yellow style=filled]
"forward<int>#std#_ZNSt3__17forwardIiEEOT_RNS_16remove_referenceIS1_E4typeE.523eb59a8ab2703c1dd26505ac3ca320_1" -> "forward<int>#std#_ZNSt3__17forwardIiEEOT_RNS_16remove_referenceIS1_E4typeE.523eb59a8ab2703c1dd26505ac3ca320_3" ;
"forward<int>#std#_ZNSt3__17forwardIiEEOT_RNS_16remove_referenceIS1_E4typeE.523eb59a8ab2703c1dd26505ac3ca320_2" [label="2: Exit std::forward<int> \n " color=yellow style=filled]
"forward<int>#std#_ZNSt3__17forwardIiEEOT_RNS_16remove_referenceIS1_E4typeE.523eb59a8ab2703c1dd26505ac3ca320_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2189]\n *&return:int&=n$0 [line 2189]\n " shape="box"]
"forward<int>#std#_ZNSt3__17forwardIiEEOT_RNS_16remove_referenceIS1_E4typeE.523eb59a8ab2703c1dd26505ac3ca320_3" -> "forward<int>#std#_ZNSt3__17forwardIiEEOT_RNS_16remove_referenceIS1_E4typeE.523eb59a8ab2703c1dd26505ac3ca320_2" ;
"forward<int_&>#std#_ZNSt3__17forwardIRiEEOT_RNS_16remove_referenceIS2_E4typeE.cc2f793965345ea3bcde70d7318c5716_1" [label="1: Start std::forward<int_&>\nFormals: __t:int&\nLocals: \n DECLARE_LOCALS(&return); [line 2185]\n " color=yellow style=filled]
"forward<int_&>#std#_ZNSt3__17forwardIRiEEOT_RNS_16remove_referenceIS2_E4typeE.cc2f793965345ea3bcde70d7318c5716_1" -> "forward<int_&>#std#_ZNSt3__17forwardIRiEEOT_RNS_16remove_referenceIS2_E4typeE.cc2f793965345ea3bcde70d7318c5716_3" ;
"forward<int_&>#std#_ZNSt3__17forwardIRiEEOT_RNS_16remove_referenceIS2_E4typeE.cc2f793965345ea3bcde70d7318c5716_2" [label="2: Exit std::forward<int_&> \n " color=yellow style=filled]
"forward<int_&>#std#_ZNSt3__17forwardIRiEEOT_RNS_16remove_referenceIS2_E4typeE.cc2f793965345ea3bcde70d7318c5716_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2189]\n *&return:int&=n$0 [line 2189]\n " shape="box"]
"forward<int_&>#std#_ZNSt3__17forwardIRiEEOT_RNS_16remove_referenceIS2_E4typeE.cc2f793965345ea3bcde70d7318c5716_3" -> "forward<int_&>#std#_ZNSt3__17forwardIRiEEOT_RNS_16remove_referenceIS2_E4typeE.cc2f793965345ea3bcde70d7318c5716_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEi.43b0259cdf1b6086b5b232de7e5ddc3b_1" [label="1: Start std::__convert_to_integral\nFormals: __val:int\nLocals: \n DECLARE_LOCALS(&return); [line 4590]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEi.43b0259cdf1b6086b5b232de7e5ddc3b_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEi.43b0259cdf1b6086b5b232de7e5ddc3b_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEi.43b0259cdf1b6086b5b232de7e5ddc3b_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEi.43b0259cdf1b6086b5b232de7e5ddc3b_3" [label="3: Return Stmt \n n$0=*&__val:int [line 4591]\n *&return:int=n$0 [line 4591]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEi.43b0259cdf1b6086b5b232de7e5ddc3b_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEi.43b0259cdf1b6086b5b232de7e5ddc3b_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEn.f0a547f6acd880fbe54bf8cd9fcfe151_1" [label="1: Start std::__convert_to_integral\nFormals: __val:int\nLocals: \n DECLARE_LOCALS(&return); [line 4609]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEn.f0a547f6acd880fbe54bf8cd9fcfe151_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEn.f0a547f6acd880fbe54bf8cd9fcfe151_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEn.f0a547f6acd880fbe54bf8cd9fcfe151_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEn.f0a547f6acd880fbe54bf8cd9fcfe151_3" [label="3: Return Stmt \n n$0=*&__val:int [line 4610]\n *&return:int=n$0 [line 4610]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEn.f0a547f6acd880fbe54bf8cd9fcfe151_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEn.f0a547f6acd880fbe54bf8cd9fcfe151_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEj.fd205920d652f02f0b9a9b89e450a068_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned int\nLocals: \n DECLARE_LOCALS(&return); [line 4593]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEj.fd205920d652f02f0b9a9b89e450a068_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEj.fd205920d652f02f0b9a9b89e450a068_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEj.fd205920d652f02f0b9a9b89e450a068_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEj.fd205920d652f02f0b9a9b89e450a068_3" [label="3: Return Stmt \n n$0=*&__val:unsigned int [line 4594]\n *&return:unsigned int=n$0 [line 4594]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEj.fd205920d652f02f0b9a9b89e450a068_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEj.fd205920d652f02f0b9a9b89e450a068_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEo.15fc37df335893286e47ebfc292083c1_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned int\nLocals: \n DECLARE_LOCALS(&return); [line 4612]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEo.15fc37df335893286e47ebfc292083c1_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEo.15fc37df335893286e47ebfc292083c1_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEo.15fc37df335893286e47ebfc292083c1_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEo.15fc37df335893286e47ebfc292083c1_3" [label="3: Return Stmt \n n$0=*&__val:unsigned int [line 4613]\n *&return:unsigned int=n$0 [line 4613]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEo.15fc37df335893286e47ebfc292083c1_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEo.15fc37df335893286e47ebfc292083c1_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEl.19b65e5b35784a4d6b1ba397569565af_1" [label="1: Start std::__convert_to_integral\nFormals: __val:long\nLocals: \n DECLARE_LOCALS(&return); [line 4596]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEl.19b65e5b35784a4d6b1ba397569565af_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEl.19b65e5b35784a4d6b1ba397569565af_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEl.19b65e5b35784a4d6b1ba397569565af_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEl.19b65e5b35784a4d6b1ba397569565af_3" [label="3: Return Stmt \n n$0=*&__val:long [line 4597]\n *&return:long=n$0 [line 4597]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEl.19b65e5b35784a4d6b1ba397569565af_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEl.19b65e5b35784a4d6b1ba397569565af_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEm.111d95b3f3b4d5dd40ab1add8f243f84_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned long\nLocals: \n DECLARE_LOCALS(&return); [line 4599]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEm.111d95b3f3b4d5dd40ab1add8f243f84_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEm.111d95b3f3b4d5dd40ab1add8f243f84_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEm.111d95b3f3b4d5dd40ab1add8f243f84_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEm.111d95b3f3b4d5dd40ab1add8f243f84_3" [label="3: Return Stmt \n n$0=*&__val:unsigned long [line 4600]\n *&return:unsigned long=n$0 [line 4600]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEm.111d95b3f3b4d5dd40ab1add8f243f84_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEm.111d95b3f3b4d5dd40ab1add8f243f84_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEx.c1183c63775e8691319a0bd03664ac0c_1" [label="1: Start std::__convert_to_integral\nFormals: __val:long long\nLocals: \n DECLARE_LOCALS(&return); [line 4602]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEx.c1183c63775e8691319a0bd03664ac0c_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEx.c1183c63775e8691319a0bd03664ac0c_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEx.c1183c63775e8691319a0bd03664ac0c_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEx.c1183c63775e8691319a0bd03664ac0c_3" [label="3: Return Stmt \n n$0=*&__val:long long [line 4603]\n *&return:long long=n$0 [line 4603]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEx.c1183c63775e8691319a0bd03664ac0c_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEx.c1183c63775e8691319a0bd03664ac0c_2" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEy.4261f4b82618cc6ea34bb4631aefbdda_1" [label="1: Start std::__convert_to_integral\nFormals: __val:unsigned long long\nLocals: \n DECLARE_LOCALS(&return); [line 4605]\n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEy.4261f4b82618cc6ea34bb4631aefbdda_1" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEy.4261f4b82618cc6ea34bb4631aefbdda_3" ;
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEy.4261f4b82618cc6ea34bb4631aefbdda_2" [label="2: Exit std::__convert_to_integral \n " color=yellow style=filled]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEy.4261f4b82618cc6ea34bb4631aefbdda_3" [label="3: Return Stmt \n n$0=*&__val:unsigned long long [line 4606]\n *&return:unsigned long long=n$0 [line 4606]\n " shape="box"]
"__convert_to_integral#std#_ZNSt3__121__convert_to_integralEy.4261f4b82618cc6ea34bb4631aefbdda_3" -> "__convert_to_integral#std#_ZNSt3__121__convert_to_integralEy.4261f4b82618cc6ea34bb4631aefbdda_2" ;
"make_id<int,_int_&,_int_&,_int>#pass_by_val#_ZN11pass_by_val7make_idIiJRiS1_iEEENS_2IdIT_EEDpOT0_.fc56c12cd0be2266e2f49018e25bd777_1" [label="1: Start pass_by_val::make_id<int,_int_&,_int_&,_int>\nFormals: args:int& args:int& args:int& __return_param:pass_by_val::Id<int>*\nLocals: 0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id<int> \n DECLARE_LOCALS(&return,&0$?%__sil_tmpSIL_materialize_temp__n$1); [line 60]\n " color=yellow style=filled]
"make_id<int,_int_&,_int_&,_int>#pass_by_val#_ZN11pass_by_val7make_idIiJRiS1_iEEENS_2IdIT_EEDpOT0_.fc56c12cd0be2266e2f49018e25bd777_1" -> "make_id<int,_int_&,_int_&,_int>#pass_by_val#_ZN11pass_by_val7make_idIiJRiS1_iEEENS_2IdIT_EEDpOT0_.fc56c12cd0be2266e2f49018e25bd777_3" ;
"make_id<int,_int_&,_int_&,_int>#pass_by_val#_ZN11pass_by_val7make_idIiJRiS1_iEEENS_2IdIT_EEDpOT0_.fc56c12cd0be2266e2f49018e25bd777_2" [label="2: Exit pass_by_val::make_id<int,_int_&,_int_&,_int> \n " color=yellow style=filled]
"make_id<int,_int_&,_int_&,_int>#pass_by_val#_ZN11pass_by_val7make_idIiJRiS1_iEEENS_2IdIT_EEDpOT0_.fc56c12cd0be2266e2f49018e25bd777_3" [label="3: Return Stmt \n n$0=*&__return_param:pass_by_val::Id<int>* [line 61]\n n$2=*&args:int& [line 61]\n n$3=_fun_std::forward<int_&>(n$2:int&) [line 61]\n n$4=*n$3:int [line 61]\n n$5=*&args:int& [line 61]\n n$6=_fun_std::forward<int_&>(n$5:int&) [line 61]\n n$7=*&args:int& [line 61]\n n$8=_fun_std::forward<int>(n$7:int&) [line 61]\n _fun_pass_by_val::Id<int>_Id(&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id<int>*,n$4:int,n$6:int&,n$8:int&) [line 61]\n _fun_pass_by_val::Id<int>_Id(n$0:pass_by_val::Id<int>*,&0$?%__sil_tmpSIL_materialize_temp__n$1:pass_by_val::Id<int>&) [line 61]\n " shape="box"]
"make_id<int,_int_&,_int_&,_int>#pass_by_val#_ZN11pass_by_val7make_idIiJRiS1_iEEENS_2IdIT_EEDpOT0_.fc56c12cd0be2266e2f49018e25bd777_3" -> "make_id<int,_int_&,_int_&,_int>#pass_by_val#_ZN11pass_by_val7make_idIiJRiS1_iEEENS_2IdIT_EEDpOT0_.fc56c12cd0be2266e2f49018e25bd777_2" ;
"plain_struct_by_ref#pass_by_val#_ZN11pass_by_val19plain_struct_by_refERNS_11PlainStructEOS0_PS0_.7f42f8f13f5c90589a8bcd4fc33e4986_1" [label="1: Start pass_by_val::plain_struct_by_ref\nFormals: lref:pass_by_val::PlainStruct& rref:pass_by_val::PlainStruct& ptr:pass_by_val::PlainStruct*\nLocals: \n DECLARE_LOCALS(&return); [line 20]\n " color=yellow style=filled]
"plain_struct_by_ref#pass_by_val#_ZN11pass_by_val19plain_struct_by_refERNS_11PlainStructEOS0_PS0_.7f42f8f13f5c90589a8bcd4fc33e4986_1" -> "plain_struct_by_ref#pass_by_val#_ZN11pass_by_val19plain_struct_by_refERNS_11PlainStructEOS0_PS0_.7f42f8f13f5c90589a8bcd4fc33e4986_3" ;
"plain_struct_by_ref#pass_by_val#_ZN11pass_by_val19plain_struct_by_refERNS_11PlainStructEOS0_PS0_.7f42f8f13f5c90589a8bcd4fc33e4986_2" [label="2: Exit pass_by_val::plain_struct_by_ref \n " color=yellow style=filled]
"plain_struct_by_ref#pass_by_val#_ZN11pass_by_val19plain_struct_by_refERNS_11PlainStructEOS0_PS0_.7f42f8f13f5c90589a8bcd4fc33e4986_3" [label="3: Return Stmt \n n$0=*&lref:pass_by_val::PlainStruct& [line 23]\n n$1=*n$0.x:int [line 23]\n n$2=*&rref:pass_by_val::PlainStruct& [line 23]\n n$3=*n$2.x:int [line 23]\n n$4=*&ptr:pass_by_val::PlainStruct* [line 23]\n n$5=*n$4.x:int [line 23]\n *&return:int=((n$1 + n$3) + n$5) [line 23]\n " shape="box"]
"plain_struct_by_ref#pass_by_val#_ZN11pass_by_val19plain_struct_by_refERNS_11PlainStructEOS0_PS0_.7f42f8f13f5c90589a8bcd4fc33e4986_3" -> "plain_struct_by_ref#pass_by_val#_ZN11pass_by_val19plain_struct_by_refERNS_11PlainStructEOS0_PS0_.7f42f8f13f5c90589a8bcd4fc33e4986_2" ;
"decltype_by_ref#pass_by_val#_ZN11pass_by_val15decltype_by_refERNS_11PlainStructE.d48e158410d4a50b78e8abb1b40a30dd_1" [label="1: Start pass_by_val::decltype_by_ref\nFormals: p:pass_by_val::PlainStruct&\nLocals: \n DECLARE_LOCALS(&return); [line 40]\n " color=yellow style=filled]
"decltype_by_ref#pass_by_val#_ZN11pass_by_val15decltype_by_refERNS_11PlainStructE.d48e158410d4a50b78e8abb1b40a30dd_1" -> "decltype_by_ref#pass_by_val#_ZN11pass_by_val15decltype_by_refERNS_11PlainStructE.d48e158410d4a50b78e8abb1b40a30dd_3" ;
"decltype_by_ref#pass_by_val#_ZN11pass_by_val15decltype_by_refERNS_11PlainStructE.d48e158410d4a50b78e8abb1b40a30dd_2" [label="2: Exit pass_by_val::decltype_by_ref \n " color=yellow style=filled]
"decltype_by_ref#pass_by_val#_ZN11pass_by_val15decltype_by_refERNS_11PlainStructE.d48e158410d4a50b78e8abb1b40a30dd_3" [label="3: Return Stmt \n n$0=*&p:pass_by_val::PlainStruct& [line 40]\n n$1=*n$0.x:int [line 40]\n n$2=*&p:pass_by_val::PlainStruct& [line 40]\n n$3=*n$2.y:int* [line 40]\n n$4=*n$3:int [line 40]\n *&return:int=(n$1 + n$4) [line 40]\n " shape="box"]
"decltype_by_ref#pass_by_val#_ZN11pass_by_val15decltype_by_refERNS_11PlainStructE.d48e158410d4a50b78e8abb1b40a30dd_3" -> "decltype_by_ref#pass_by_val#_ZN11pass_by_val15decltype_by_refERNS_11PlainStructE.d48e158410d4a50b78e8abb1b40a30dd_2" ;
"plain_struct_by_val#pass_by_val#_ZN11pass_by_val19plain_struct_by_valENS_11PlainStructE.5aa68348141f02027afcba4e0e736cbb_1" [label="1: Start pass_by_val::plain_struct_by_val\nFormals: p:pass_by_val::PlainStruct&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 19]\n " color=yellow style=filled]
"plain_struct_by_val#pass_by_val#_ZN11pass_by_val19plain_struct_by_valENS_11PlainStructE.5aa68348141f02027afcba4e0e736cbb_1" -> "plain_struct_by_val#pass_by_val#_ZN11pass_by_val19plain_struct_by_valENS_11PlainStructE.5aa68348141f02027afcba4e0e736cbb_3" ;
"plain_struct_by_val#pass_by_val#_ZN11pass_by_val19plain_struct_by_valENS_11PlainStructE.5aa68348141f02027afcba4e0e736cbb_2" [label="2: Exit pass_by_val::plain_struct_by_val \n " color=yellow style=filled]
"plain_struct_by_val#pass_by_val#_ZN11pass_by_val19plain_struct_by_valENS_11PlainStructE.5aa68348141f02027afcba4e0e736cbb_3" [label="3: Return Stmt \n n$0=*&p:pass_by_val::PlainStruct& [line 19]\n n$1=*n$0.x:int [line 19]\n n$2=*&p:pass_by_val::PlainStruct& [line 19]\n n$3=*n$2.y:int* [line 19]\n n$4=*n$3:int [line 19]\n *&return:int=(n$1 + n$4) [line 19]\n " shape="box"]
"plain_struct_by_val#pass_by_val#_ZN11pass_by_val19plain_struct_by_valENS_11PlainStructE.5aa68348141f02027afcba4e0e736cbb_3" -> "plain_struct_by_val#pass_by_val#_ZN11pass_by_val19plain_struct_by_valENS_11PlainStructE.5aa68348141f02027afcba4e0e736cbb_2" ;
"decltype_by_val#pass_by_val#_ZN11pass_by_val15decltype_by_valENS_11PlainStructE.ec191dedb7475d4f34a5460ddf9bfaf5_1" [label="1: Start pass_by_val::decltype_by_val\nFormals: p:pass_by_val::PlainStruct&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 38]\n " color=yellow style=filled]
"decltype_by_val#pass_by_val#_ZN11pass_by_val15decltype_by_valENS_11PlainStructE.ec191dedb7475d4f34a5460ddf9bfaf5_1" -> "decltype_by_val#pass_by_val#_ZN11pass_by_val15decltype_by_valENS_11PlainStructE.ec191dedb7475d4f34a5460ddf9bfaf5_3" ;
"decltype_by_val#pass_by_val#_ZN11pass_by_val15decltype_by_valENS_11PlainStructE.ec191dedb7475d4f34a5460ddf9bfaf5_2" [label="2: Exit pass_by_val::decltype_by_val \n " color=yellow style=filled]
"decltype_by_val#pass_by_val#_ZN11pass_by_val15decltype_by_valENS_11PlainStructE.ec191dedb7475d4f34a5460ddf9bfaf5_3" [label="3: Return Stmt \n n$0=*&p:pass_by_val::PlainStruct& [line 38]\n n$1=*n$0.x:int [line 38]\n n$2=*&p:pass_by_val::PlainStruct& [line 38]\n n$3=*n$2.y:int* [line 38]\n n$4=*n$3:int [line 38]\n *&return:int=(n$1 + n$4) [line 38]\n " shape="box"]
"decltype_by_val#pass_by_val#_ZN11pass_by_val15decltype_by_valENS_11PlainStructE.ec191dedb7475d4f34a5460ddf9bfaf5_3" -> "decltype_by_val#pass_by_val#_ZN11pass_by_val15decltype_by_valENS_11PlainStructE.ec191dedb7475d4f34a5460ddf9bfaf5_2" ;
"dependent_by_val#pass_by_val#_ZN11pass_by_val16dependent_by_valENS_11PlainStructE.e64b679cc4105fd0ea7a79163ec16376_1" [label="1: Start pass_by_val::dependent_by_val\nFormals: p:pass_by_val::PlainStruct&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 49]\n " color=yellow style=filled]
"dependent_by_val#pass_by_val#_ZN11pass_by_val16dependent_by_valENS_11PlainStructE.e64b679cc4105fd0ea7a79163ec16376_1" -> "dependent_by_val#pass_by_val#_ZN11pass_by_val16dependent_by_valENS_11PlainStructE.e64b679cc4105fd0ea7a79163ec16376_3" ;
"dependent_by_val#pass_by_val#_ZN11pass_by_val16dependent_by_valENS_11PlainStructE.e64b679cc4105fd0ea7a79163ec16376_2" [label="2: Exit pass_by_val::dependent_by_val \n " color=yellow style=filled]
"dependent_by_val#pass_by_val#_ZN11pass_by_val16dependent_by_valENS_11PlainStructE.e64b679cc4105fd0ea7a79163ec16376_3" [label="3: Return Stmt \n n$0=*&p:pass_by_val::PlainStruct& [line 49]\n n$1=*n$0.x:int [line 49]\n n$2=*&p:pass_by_val::PlainStruct& [line 49]\n n$3=*n$2.y:int* [line 49]\n n$4=*n$3:int [line 49]\n *&return:int=(n$1 + n$4) [line 49]\n " shape="box"]
"dependent_by_val#pass_by_val#_ZN11pass_by_val16dependent_by_valENS_11PlainStructE.e64b679cc4105fd0ea7a79163ec16376_3" -> "dependent_by_val#pass_by_val#_ZN11pass_by_val16dependent_by_valENS_11PlainStructE.e64b679cc4105fd0ea7a79163ec16376_2" ;
"dependent_by_ref#pass_by_val#_ZN11pass_by_val16dependent_by_refERKNS_11PlainStructE.9a76334c554b31570d038d4140275829_1" [label="1: Start pass_by_val::dependent_by_ref\nFormals: p:pass_by_val::PlainStruct const &\nLocals: \n DECLARE_LOCALS(&return); [line 50]\n " color=yellow style=filled]
"dependent_by_ref#pass_by_val#_ZN11pass_by_val16dependent_by_refERKNS_11PlainStructE.9a76334c554b31570d038d4140275829_1" -> "dependent_by_ref#pass_by_val#_ZN11pass_by_val16dependent_by_refERKNS_11PlainStructE.9a76334c554b31570d038d4140275829_3" ;
"dependent_by_ref#pass_by_val#_ZN11pass_by_val16dependent_by_refERKNS_11PlainStructE.9a76334c554b31570d038d4140275829_2" [label="2: Exit pass_by_val::dependent_by_ref \n " color=yellow style=filled]
"dependent_by_ref#pass_by_val#_ZN11pass_by_val16dependent_by_refERKNS_11PlainStructE.9a76334c554b31570d038d4140275829_3" [label="3: Return Stmt \n n$0=*&p:pass_by_val::PlainStruct const & [line 50]\n n$1=*n$0.x:int [line 50]\n n$2=*&p:pass_by_val::PlainStruct const & [line 50]\n n$3=*n$2.y:int* [line 50]\n n$4=*n$3:int [line 50]\n *&return:int=(n$1 + n$4) [line 50]\n " shape="box"]
"dependent_by_ref#pass_by_val#_ZN11pass_by_val16dependent_by_refERKNS_11PlainStructE.9a76334c554b31570d038d4140275829_3" -> "dependent_by_ref#pass_by_val#_ZN11pass_by_val16dependent_by_refERKNS_11PlainStructE.9a76334c554b31570d038d4140275829_2" ;
"type_alias_by_ref#pass_by_val#_ZN11pass_by_val17type_alias_by_refEPNS_11PlainStructEPKS0_.252d358c8562c0f537938746672dc00e_1" [label="1: Start pass_by_val::type_alias_by_ref\nFormals: p1:pass_by_val::PlainStruct* p2:pass_by_val::PlainStruct const *\nLocals: \n DECLARE_LOCALS(&return); [line 34]\n " color=yellow style=filled]
"type_alias_by_ref#pass_by_val#_ZN11pass_by_val17type_alias_by_refEPNS_11PlainStructEPKS0_.252d358c8562c0f537938746672dc00e_1" -> "type_alias_by_ref#pass_by_val#_ZN11pass_by_val17type_alias_by_refEPNS_11PlainStructEPKS0_.252d358c8562c0f537938746672dc00e_3" ;
"type_alias_by_ref#pass_by_val#_ZN11pass_by_val17type_alias_by_refEPNS_11PlainStructEPKS0_.252d358c8562c0f537938746672dc00e_2" [label="2: Exit pass_by_val::type_alias_by_ref \n " color=yellow style=filled]
"type_alias_by_ref#pass_by_val#_ZN11pass_by_val17type_alias_by_refEPNS_11PlainStructEPKS0_.252d358c8562c0f537938746672dc00e_3" [label="3: Return Stmt \n n$0=*&p1:pass_by_val::PlainStruct* [line 35]\n n$1=*n$0.x:int [line 35]\n n$2=*&p2:pass_by_val::PlainStruct const * [line 35]\n n$3=*n$2.x:int [line 35]\n *&return:int=(n$1 + n$3) [line 35]\n " shape="box"]
"type_alias_by_ref#pass_by_val#_ZN11pass_by_val17type_alias_by_refEPNS_11PlainStructEPKS0_.252d358c8562c0f537938746672dc00e_3" -> "type_alias_by_ref#pass_by_val#_ZN11pass_by_val17type_alias_by_refEPNS_11PlainStructEPKS0_.252d358c8562c0f537938746672dc00e_2" ;
"type_alias_by_val#pass_by_val#_ZN11pass_by_val17type_alias_by_valENS_11PlainStructES0_.b12ef66d05f83a2d989839d68ae6f5d8_1" [label="1: Start pass_by_val::type_alias_by_val\nFormals: p1:pass_by_val::PlainStruct&(byval) p2:pass_by_val::PlainStruct&(byval)\nLocals: 0$?%__sil_tmp__temp_construct_n$0:pass_by_val::PlainStruct 0$?%__sil_tmp__temp_construct_n$3:pass_by_val::PlainStruct \n DECLARE_LOCALS(&return,&0$?%__sil_tmp__temp_construct_n$0,&0$?%__sil_tmp__temp_construct_n$3); [line 31]\n " color=yellow style=filled]
"type_alias_by_val#pass_by_val#_ZN11pass_by_val17type_alias_by_valENS_11PlainStructES0_.b12ef66d05f83a2d989839d68ae6f5d8_1" -> "type_alias_by_val#pass_by_val#_ZN11pass_by_val17type_alias_by_valENS_11PlainStructES0_.b12ef66d05f83a2d989839d68ae6f5d8_3" ;
"type_alias_by_val#pass_by_val#_ZN11pass_by_val17type_alias_by_valENS_11PlainStructES0_.b12ef66d05f83a2d989839d68ae6f5d8_2" [label="2: Exit pass_by_val::type_alias_by_val \n " color=yellow style=filled]
"type_alias_by_val#pass_by_val#_ZN11pass_by_val17type_alias_by_valENS_11PlainStructES0_.b12ef66d05f83a2d989839d68ae6f5d8_3" [label="3: Return Stmt \n n$1=*&p1:pass_by_val::PlainStruct& [line 32]\n _fun_pass_by_val::PlainStruct_PlainStruct(&0$?%__sil_tmp__temp_construct_n$0:pass_by_val::PlainStruct*,n$1:pass_by_val::PlainStruct&) [line 32]\n n$2=_fun_pass_by_val::plain_struct_by_val(&0$?%__sil_tmp__temp_construct_n$0:pass_by_val::PlainStruct) [line 32]\n n$4=*&p2:pass_by_val::PlainStruct& [line 32]\n _fun_pass_by_val::PlainStruct_PlainStruct(&0$?%__sil_tmp__temp_construct_n$3:pass_by_val::PlainStruct*,n$4:pass_by_val::PlainStruct&) [line 32]\n n$5=_fun_pass_by_val::plain_struct_by_val(&0$?%__sil_tmp__temp_construct_n$3:pass_by_val::PlainStruct) [line 32]\n *&return:int=(n$2 + n$5) [line 32]\n " shape="box"]
"type_alias_by_val#pass_by_val#_ZN11pass_by_val17type_alias_by_valENS_11PlainStructES0_.b12ef66d05f83a2d989839d68ae6f5d8_3" -> "type_alias_by_val#pass_by_val#_ZN11pass_by_val17type_alias_by_valENS_11PlainStructES0_.b12ef66d05f83a2d989839d68ae6f5d8_2" ;
"tricky_dependent_by_val#pass_by_val#_ZN11pass_by_val23tricky_dependent_by_valEd.6772c98c8fe46dbf5a8b5f1fb200e645_1" [label="1: Start pass_by_val::tricky_dependent_by_val\nFormals: t:double\nLocals: \n DECLARE_LOCALS(&return); [line 57]\n " color=yellow style=filled]
"tricky_dependent_by_val#pass_by_val#_ZN11pass_by_val23tricky_dependent_by_valEd.6772c98c8fe46dbf5a8b5f1fb200e645_1" -> "tricky_dependent_by_val#pass_by_val#_ZN11pass_by_val23tricky_dependent_by_valEd.6772c98c8fe46dbf5a8b5f1fb200e645_3" ;
"tricky_dependent_by_val#pass_by_val#_ZN11pass_by_val23tricky_dependent_by_valEd.6772c98c8fe46dbf5a8b5f1fb200e645_2" [label="2: Exit pass_by_val::tricky_dependent_by_val \n " color=yellow style=filled]
"tricky_dependent_by_val#pass_by_val#_ZN11pass_by_val23tricky_dependent_by_valEd.6772c98c8fe46dbf5a8b5f1fb200e645_3" [label="3: Return Stmt \n n$0=*&t:double [line 57]\n *&return:double=n$0 [line 57]\n " shape="box"]
"tricky_dependent_by_val#pass_by_val#_ZN11pass_by_val23tricky_dependent_by_valEd.6772c98c8fe46dbf5a8b5f1fb200e645_3" -> "tricky_dependent_by_val#pass_by_val#_ZN11pass_by_val23tricky_dependent_by_valEd.6772c98c8fe46dbf5a8b5f1fb200e645_2" ;
"to_double#pass_by_val#_ZN11pass_by_val9to_doubleEi.47215393b89ed63b1ba707fa41acdfb4_1" [label="1: Start pass_by_val::to_double\nFormals: x:int\nLocals: \n DECLARE_LOCALS(&return); [line 52]\n " color=yellow style=filled]
"to_double#pass_by_val#_ZN11pass_by_val9to_doubleEi.47215393b89ed63b1ba707fa41acdfb4_1" -> "to_double#pass_by_val#_ZN11pass_by_val9to_doubleEi.47215393b89ed63b1ba707fa41acdfb4_3" ;
"to_double#pass_by_val#_ZN11pass_by_val9to_doubleEi.47215393b89ed63b1ba707fa41acdfb4_2" [label="2: Exit pass_by_val::to_double \n " color=yellow style=filled]
"to_double#pass_by_val#_ZN11pass_by_val9to_doubleEi.47215393b89ed63b1ba707fa41acdfb4_3" [label="3: Return Stmt \n n$0=*&x:int [line 52]\n *&return:double=n$0 [line 52]\n " shape="box"]
"to_double#pass_by_val#_ZN11pass_by_val9to_doubleEi.47215393b89ed63b1ba707fa41acdfb4_3" -> "to_double#pass_by_val#_ZN11pass_by_val9to_doubleEi.47215393b89ed63b1ba707fa41acdfb4_2" ;
"Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EiRiOi}.329b18efd90b165eb32a5778917a28f2_1" [label="1: Start pass_by_val::Id<int>_Id\nFormals: this:pass_by_val::Id<int>* __param_0:int __param_1:int& __param_2:int&\nLocals: \n DECLARE_LOCALS(&return); [line 46]\n " color=yellow style=filled]
"Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EiRiOi}.329b18efd90b165eb32a5778917a28f2_1" -> "Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EiRiOi}.329b18efd90b165eb32a5778917a28f2_2" ;
"Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EiRiOi}.329b18efd90b165eb32a5778917a28f2_2" [label="2: Exit pass_by_val::Id<int>_Id \n " color=yellow style=filled]
"Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EOS1_|constexpr}.efb404074ac909fdda46fe00d12af30a_1" [label="1: Start pass_by_val::Id<int>_Id\nFormals: this:pass_by_val::Id<int>* __param_0:pass_by_val::Id<int>&\nLocals: \n DECLARE_LOCALS(&return); [line 43]\n " color=yellow style=filled]
"Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EOS1_|constexpr}.efb404074ac909fdda46fe00d12af30a_1" -> "Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EOS1_|constexpr}.efb404074ac909fdda46fe00d12af30a_2" ;
"Id#Id<int>#pass_by_val#{_ZN11pass_by_val2IdIiEC1EOS1_|constexpr}.efb404074ac909fdda46fe00d12af30a_2" [label="2: Exit pass_by_val::Id<int>_Id \n " color=yellow style=filled]
"PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_1" [label="1: Start pass_by_val::PlainStruct_PlainStruct\nFormals: this:pass_by_val::PlainStruct* __param_0:pass_by_val::PlainStruct const &\nLocals: \n DECLARE_LOCALS(&return); [line 13]\n " color=yellow style=filled]
"PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_1" -> "PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_4" ;
"PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_2" [label="2: Exit pass_by_val::PlainStruct_PlainStruct \n " color=yellow style=filled]
"PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_3" [label="3: Constructor Init \n n$0=*&this:pass_by_val::PlainStruct* [line 13]\n n$1=*&__param_0:pass_by_val::PlainStruct const & [line 13]\n n$2=*n$1.y:int* [line 13]\n *n$0.y:int*=n$2 [line 13]\n " shape="box"]
"PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_3" -> "PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_2" ;
"PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_4" [label="4: Constructor Init \n n$3=*&this:pass_by_val::PlainStruct* [line 13]\n n$4=*&__param_0:pass_by_val::PlainStruct const & [line 13]\n n$5=*n$4.x:int [line 13]\n *n$3.x:int=n$5 [line 13]\n " shape="box"]
"PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_4" -> "PlainStruct#PlainStruct#pass_by_val#{_ZN11pass_by_val11PlainStructC1ERKS0_|constexpr}.4bd722721960535adc11621f82c7a2a0_3" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_1" [label="1: Start std::__libcpp_debug_info___libcpp_debug_info\nFormals: this:std::__libcpp_debug_info*\nLocals: \n DECLARE_LOCALS(&return); [line 60]\n " color=yellow style=filled]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_1" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_6" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_2" [label="2: Exit std::__libcpp_debug_info___libcpp_debug_info \n " color=yellow style=filled]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_3" [label="3: Constructor Init \n n$0=*&this:std::__libcpp_debug_info* [line 62]\n *n$0.__msg_:char const *=null [line 62]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_3" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_2" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_4" [label="4: Constructor Init \n n$1=*&this:std::__libcpp_debug_info* [line 62]\n *n$1.__pred_:char const *=null [line 62]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_4" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_3" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_5" [label="5: Constructor Init \n n$2=*&this:std::__libcpp_debug_info* [line 62]\n *n$2.__line_:int=-1 [line 62]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_5" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_4" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_6" [label="6: Constructor Init \n n$3=*&this:std::__libcpp_debug_info* [line 62]\n *n$3.__file_:char const *=null [line 62]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_6" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1Ev|constexpr}.18c4bedef0fc0ca181534b75d0aa46ea_5" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_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]\n " color=yellow style=filled]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_1" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_6" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_2" [label="2: Exit std::__libcpp_debug_info___libcpp_debug_info \n " color=yellow style=filled]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_3" [label="3: Constructor Init \n n$0=*&this:std::__libcpp_debug_info* [line 65]\n n$1=*&__m:char const * [line 65]\n *n$0.__msg_:char const *=n$1 [line 65]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_3" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_2" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_4" [label="4: Constructor Init \n n$2=*&this:std::__libcpp_debug_info* [line 65]\n n$3=*&__p:char const * [line 65]\n *n$2.__pred_:char const *=n$3 [line 65]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_4" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_3" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_5" [label="5: Constructor Init \n n$4=*&this:std::__libcpp_debug_info* [line 65]\n n$5=*&__l:int [line 65]\n *n$4.__line_:int=n$5 [line 65]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_5" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_4" ;
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_6" [label="6: Constructor Init \n n$6=*&this:std::__libcpp_debug_info* [line 65]\n n$7=*&__f:char const * [line 65]\n *n$6.__file_:char const *=n$7 [line 65]\n " shape="box"]
"__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_6" -> "__libcpp_debug_info#__libcpp_debug_info#std#{_ZNSt3__119__libcpp_debug_infoC1EPKciS2_S2_|constexpr}.685075968ad59182030097b6f2b1166a_5" ;
"piecewise_construct_t#piecewise_construct_t#std#{_ZNSt3__121piecewise_construct_tC1EOS0_|constexpr}.d8a96ba874953804448b38f70af127ac_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]\n " color=yellow style=filled]
"piecewise_construct_t#piecewise_construct_t#std#{_ZNSt3__121piecewise_construct_tC1EOS0_|constexpr}.d8a96ba874953804448b38f70af127ac_1" -> "piecewise_construct_t#piecewise_construct_t#std#{_ZNSt3__121piecewise_construct_tC1EOS0_|constexpr}.d8a96ba874953804448b38f70af127ac_2" ;
"piecewise_construct_t#piecewise_construct_t#std#{_ZNSt3__121piecewise_construct_tC1EOS0_|constexpr}.d8a96ba874953804448b38f70af127ac_2" [label="2: Exit std::piecewise_construct_t_piecewise_construct_t \n " color=yellow style=filled]
}

@ -76,7 +76,7 @@ digraph iCFG {
"div1_cast#_Z9div1_castP3Sub.0cd9f1a48e13cc3e6ee3f1ecccc2961f_5" -> "div1_cast#_Z9div1_castP3Sub.0cd9f1a48e13cc3e6ee3f1ecccc2961f_4" ;
"div0_b1#_Z7div0_b13Sub.39e7e6de430d709fac091e1df74bcdda_1" [label="1: Start div0_b1\nFormals: s:Sub&\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n " color=yellow style=filled]
"div0_b1#_Z7div0_b13Sub.39e7e6de430d709fac091e1df74bcdda_1" [label="1: Start div0_b1\nFormals: s:Sub&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n " color=yellow style=filled]
"div0_b1#_Z7div0_b13Sub.39e7e6de430d709fac091e1df74bcdda_1" -> "div0_b1#_Z7div0_b13Sub.39e7e6de430d709fac091e1df74bcdda_4" ;
@ -91,7 +91,7 @@ digraph iCFG {
"div0_b1#_Z7div0_b13Sub.39e7e6de430d709fac091e1df74bcdda_4" -> "div0_b1#_Z7div0_b13Sub.39e7e6de430d709fac091e1df74bcdda_3" ;
"div0_b2#_Z7div0_b23Sub.d6a3aa8274984828e9b2d9289332abb9_1" [label="1: Start div0_b2\nFormals: s:Sub&\nLocals: \n DECLARE_LOCALS(&return); [line 27]\n " color=yellow style=filled]
"div0_b2#_Z7div0_b23Sub.d6a3aa8274984828e9b2d9289332abb9_1" [label="1: Start div0_b2\nFormals: s:Sub&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 27]\n " color=yellow style=filled]
"div0_b2#_Z7div0_b23Sub.d6a3aa8274984828e9b2d9289332abb9_1" -> "div0_b2#_Z7div0_b23Sub.d6a3aa8274984828e9b2d9289332abb9_4" ;
@ -106,7 +106,7 @@ digraph iCFG {
"div0_b2#_Z7div0_b23Sub.d6a3aa8274984828e9b2d9289332abb9_4" -> "div0_b2#_Z7div0_b23Sub.d6a3aa8274984828e9b2d9289332abb9_3" ;
"div0_s#_Z6div0_s3Sub.b14457f181d480a15f2c26328da9698f_1" [label="1: Start div0_s\nFormals: s:Sub&\nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled]
"div0_s#_Z6div0_s3Sub.b14457f181d480a15f2c26328da9698f_1" [label="1: Start div0_s\nFormals: s:Sub&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 32]\n " color=yellow style=filled]
"div0_s#_Z6div0_s3Sub.b14457f181d480a15f2c26328da9698f_1" -> "div0_s#_Z6div0_s3Sub.b14457f181d480a15f2c26328da9698f_4" ;
@ -121,7 +121,7 @@ digraph iCFG {
"div0_s#_Z6div0_s3Sub.b14457f181d480a15f2c26328da9698f_4" -> "div0_s#_Z6div0_s3Sub.b14457f181d480a15f2c26328da9698f_3" ;
"div0_cast_ref#_Z13div0_cast_ref3Sub.3d8514c92dad1c7d8b1e884c1c43032a_1" [label="1: Start div0_cast_ref\nFormals: s:Sub&\nLocals: b:Base1& \n DECLARE_LOCALS(&return,&b); [line 43]\n " color=yellow style=filled]
"div0_cast_ref#_Z13div0_cast_ref3Sub.3d8514c92dad1c7d8b1e884c1c43032a_1" [label="1: Start div0_cast_ref\nFormals: s:Sub&(byval)\nLocals: b:Base1& \n DECLARE_LOCALS(&return,&b); [line 43]\n " color=yellow style=filled]
"div0_cast_ref#_Z13div0_cast_ref3Sub.3d8514c92dad1c7d8b1e884c1c43032a_1" -> "div0_cast_ref#_Z13div0_cast_ref3Sub.3d8514c92dad1c7d8b1e884c1c43032a_5" ;
@ -140,7 +140,7 @@ digraph iCFG {
"div0_cast_ref#_Z13div0_cast_ref3Sub.3d8514c92dad1c7d8b1e884c1c43032a_5" -> "div0_cast_ref#_Z13div0_cast_ref3Sub.3d8514c92dad1c7d8b1e884c1c43032a_4" ;
"div1_b1#_Z7div1_b13Sub.00e797f8003158c8bcde96739c2853c8_1" [label="1: Start div1_b1\nFormals: s:Sub&\nLocals: \n DECLARE_LOCALS(&return); [line 61]\n " color=yellow style=filled]
"div1_b1#_Z7div1_b13Sub.00e797f8003158c8bcde96739c2853c8_1" [label="1: Start div1_b1\nFormals: s:Sub&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 61]\n " color=yellow style=filled]
"div1_b1#_Z7div1_b13Sub.00e797f8003158c8bcde96739c2853c8_1" -> "div1_b1#_Z7div1_b13Sub.00e797f8003158c8bcde96739c2853c8_4" ;

@ -109,7 +109,7 @@ digraph iCFG {
"param_get_copied_div1#struct_pass_by_value#_ZN20struct_pass_by_value21param_get_copied_div1Ev.a478d92732cbfd3143baded8caa93a88_5" -> "param_get_copied_div1#struct_pass_by_value#_ZN20struct_pass_by_value21param_get_copied_div1Ev.a478d92732cbfd3143baded8caa93a88_4" ;
"get_f#struct_pass_by_value#_ZN20struct_pass_by_value5get_fENS_1XE.d9eb5656addf74c4646b11cf2d3f3307_1" [label="1: Start struct_pass_by_value::get_f\nFormals: val:struct_pass_by_value::X&\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n " color=yellow style=filled]
"get_f#struct_pass_by_value#_ZN20struct_pass_by_value5get_fENS_1XE.d9eb5656addf74c4646b11cf2d3f3307_1" [label="1: Start struct_pass_by_value::get_f\nFormals: val:struct_pass_by_value::X&(byval)\nLocals: \n DECLARE_LOCALS(&return); [line 22]\n " color=yellow style=filled]
"get_f#struct_pass_by_value#_ZN20struct_pass_by_value5get_fENS_1XE.d9eb5656addf74c4646b11cf2d3f3307_1" -> "get_f#struct_pass_by_value#_ZN20struct_pass_by_value5get_fENS_1XE.d9eb5656addf74c4646b11cf2d3f3307_3" ;
@ -120,7 +120,7 @@ digraph iCFG {
"get_f#struct_pass_by_value#_ZN20struct_pass_by_value5get_fENS_1XE.d9eb5656addf74c4646b11cf2d3f3307_3" -> "get_f#struct_pass_by_value#_ZN20struct_pass_by_value5get_fENS_1XE.d9eb5656addf74c4646b11cf2d3f3307_2" ;
"set_f#struct_pass_by_value#_ZN20struct_pass_by_value5set_fENS_1XEi.f10cea3478ded77d2dcefbe25a6546ca_1" [label="1: Start struct_pass_by_value::set_f\nFormals: val:struct_pass_by_value::X& f:int\nLocals: \n DECLARE_LOCALS(&return); [line 25]\n " color=yellow style=filled]
"set_f#struct_pass_by_value#_ZN20struct_pass_by_value5set_fENS_1XEi.f10cea3478ded77d2dcefbe25a6546ca_1" [label="1: Start struct_pass_by_value::set_f\nFormals: val:struct_pass_by_value::X&(byval) f:int\nLocals: \n DECLARE_LOCALS(&return); [line 25]\n " color=yellow style=filled]
"set_f#struct_pass_by_value#_ZN20struct_pass_by_value5set_fENS_1XEi.f10cea3478ded77d2dcefbe25a6546ca_1" -> "set_f#struct_pass_by_value#_ZN20struct_pass_by_value5set_fENS_1XEi.f10cea3478ded77d2dcefbe25a6546ca_3" ;

Loading…
Cancel
Save