@@ -469,8 +469,8 @@ pub(crate) fn spanned_type_di_node<'ll, 'tcx>(
469469        ty:: CoroutineClosure ( ..)  => build_closure_env_di_node ( cx,  unique_type_id) , 
470470        ty:: Coroutine ( ..)  => enums:: build_coroutine_di_node ( cx,  unique_type_id) , 
471471        ty:: Adt ( def,  ..)  => match  def. adt_kind ( )  { 
472-             AdtKind :: Struct  => build_struct_type_di_node ( cx,  unique_type_id) , 
473-             AdtKind :: Union  => build_union_type_di_node ( cx,  unique_type_id) , 
472+             AdtKind :: Struct  => build_struct_type_di_node ( cx,  unique_type_id,  span ) , 
473+             AdtKind :: Union  => build_union_type_di_node ( cx,  unique_type_id,  span ) , 
474474            AdtKind :: Enum  => enums:: build_enum_type_di_node ( cx,  unique_type_id,  span) , 
475475        } , 
476476        ty:: Tuple ( _)  => build_tuple_type_di_node ( cx,  unique_type_id) , 
@@ -1066,14 +1066,15 @@ fn visibility_di_flags<'ll, 'tcx>(
10661066fn  build_struct_type_di_node < ' ll ,  ' tcx > ( 
10671067    cx :  & CodegenCx < ' ll ,  ' tcx > , 
10681068    unique_type_id :  UniqueTypeId < ' tcx > , 
1069+     span :  Span , 
10691070)  -> DINodeCreationResult < ' ll >  { 
10701071    let  struct_type = unique_type_id. expect_ty ( ) ; 
10711072    let  ty:: Adt ( adt_def,  _)  = struct_type. kind ( )  else  { 
10721073        bug ! ( "build_struct_type_di_node() called with non-struct-type: {:?}" ,  struct_type) ; 
10731074    } ; 
10741075    assert ! ( adt_def. is_struct( ) ) ; 
10751076    let  containing_scope = get_namespace_for_item ( cx,  adt_def. did ( ) ) ; 
1076-     let  struct_type_and_layout = cx. layout_of ( struct_type) ; 
1077+     let  struct_type_and_layout = cx. spanned_layout_of ( struct_type,  span ) ; 
10771078    let  variant_def = adt_def. non_enum_variant ( ) ; 
10781079    let  def_location = if  cx. sess ( ) . opts . unstable_opts . debug_info_type_line_numbers  { 
10791080        Some ( file_metadata_from_def_id ( cx,  Some ( adt_def. did ( ) ) ) ) 
@@ -1266,14 +1267,15 @@ fn build_closure_env_di_node<'ll, 'tcx>(
12661267fn  build_union_type_di_node < ' ll ,  ' tcx > ( 
12671268    cx :  & CodegenCx < ' ll ,  ' tcx > , 
12681269    unique_type_id :  UniqueTypeId < ' tcx > , 
1270+     span :  Span , 
12691271)  -> DINodeCreationResult < ' ll >  { 
12701272    let  union_type = unique_type_id. expect_ty ( ) ; 
12711273    let  ( union_def_id,  variant_def)  = match  union_type. kind ( )  { 
12721274        ty:: Adt ( def,  _)  => ( def. did ( ) ,  def. non_enum_variant ( ) ) , 
12731275        _ => bug ! ( "build_union_type_di_node on a non-ADT" ) , 
12741276    } ; 
12751277    let  containing_scope = get_namespace_for_item ( cx,  union_def_id) ; 
1276-     let  union_ty_and_layout = cx. layout_of ( union_type) ; 
1278+     let  union_ty_and_layout = cx. spanned_layout_of ( union_type,  span ) ; 
12771279    let  type_name = compute_debuginfo_type_name ( cx. tcx ,  union_type,  false ) ; 
12781280    let  def_location = if  cx. sess ( ) . opts . unstable_opts . debug_info_type_line_numbers  { 
12791281        Some ( file_metadata_from_def_id ( cx,  Some ( union_def_id) ) ) 
0 commit comments