@@ -266,6 +266,7 @@ impl RecursiveTypeDescription<'ll, 'tcx> {
266266 // ... and attach them to the stub to complete it.
267267 set_members_of_composite_type ( cx,
268268 unfinished_type,
269+ metadata_stub,
269270 member_holding_stub,
270271 member_descriptions) ;
271272 return MetadataCreationResult :: new ( metadata_stub, true ) ;
@@ -1215,6 +1216,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
12151216 set_members_of_composite_type ( cx,
12161217 self . enum_type ,
12171218 variant_type_metadata,
1219+ variant_type_metadata,
12181220 member_descriptions) ;
12191221 vec ! [
12201222 MemberDescription {
@@ -1256,6 +1258,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
12561258 set_members_of_composite_type ( cx,
12571259 self . enum_type ,
12581260 variant_type_metadata,
1261+ variant_type_metadata,
12591262 member_descriptions) ;
12601263 MemberDescription {
12611264 name : if fallback {
@@ -1298,6 +1301,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
12981301 set_members_of_composite_type ( cx,
12991302 self . enum_type ,
13001303 variant_type_metadata,
1304+ variant_type_metadata,
13011305 variant_member_descriptions) ;
13021306
13031307 // Encode the information about the null variant in the union
@@ -1358,6 +1362,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
13581362 set_members_of_composite_type ( cx,
13591363 self . enum_type ,
13601364 variant_type_metadata,
1365+ variant_type_metadata,
13611366 member_descriptions) ;
13621367
13631368 let niche_value = if i == dataful_variant {
@@ -1698,8 +1703,7 @@ fn prepare_enum_metadata(
16981703 layout. align . abi . bits ( ) as u32 ,
16991704 DIFlags :: FlagZero ,
17001705 discriminator_metadata,
1701- empty_array,
1702- unique_type_id_str. as_ptr ( ) )
1706+ empty_array)
17031707 } ;
17041708
17051709 // The variant part must be wrapped in a struct according to DWARF.
@@ -1770,14 +1774,16 @@ fn composite_type_metadata(
17701774 set_members_of_composite_type ( cx,
17711775 composite_type,
17721776 composite_type_metadata,
1777+ composite_type_metadata,
17731778 member_descriptions) ;
17741779
17751780 composite_type_metadata
17761781}
17771782
17781783fn set_members_of_composite_type ( cx : & CodegenCx < ' ll , ' tcx > ,
17791784 composite_type : Ty < ' tcx > ,
1780- composite_type_metadata : & ' ll DICompositeType ,
1785+ metadata_stub : & ' ll DICompositeType ,
1786+ member_holding_stub : & ' ll DICompositeType ,
17811787 member_descriptions : Vec < MemberDescription < ' ll > > ) {
17821788 // In some rare cases LLVM metadata uniquing would lead to an existing type
17831789 // description being used instead of a new one created in
@@ -1788,11 +1794,11 @@ fn set_members_of_composite_type(cx: &CodegenCx<'ll, 'tcx>,
17881794 {
17891795 let mut composite_types_completed =
17901796 debug_context ( cx) . composite_types_completed . borrow_mut ( ) ;
1791- if composite_types_completed. contains ( & composite_type_metadata ) {
1797+ if composite_types_completed. contains ( & metadata_stub ) {
17921798 bug ! ( "debuginfo::set_members_of_composite_type() - \
17931799 Already completed forward declaration re-encountered.") ;
17941800 } else {
1795- composite_types_completed. insert ( composite_type_metadata ) ;
1801+ composite_types_completed. insert ( metadata_stub ) ;
17961802 }
17971803 }
17981804
@@ -1803,7 +1809,7 @@ fn set_members_of_composite_type(cx: &CodegenCx<'ll, 'tcx>,
18031809 unsafe {
18041810 Some ( llvm:: LLVMRustDIBuilderCreateVariantMemberType (
18051811 DIB ( cx) ,
1806- composite_type_metadata ,
1812+ member_holding_stub ,
18071813 member_name. as_ptr ( ) ,
18081814 unknown_file_metadata ( cx) ,
18091815 UNKNOWN_LINE_NUMBER ,
@@ -1824,7 +1830,7 @@ fn set_members_of_composite_type(cx: &CodegenCx<'ll, 'tcx>,
18241830 unsafe {
18251831 let type_array = create_DIArray ( DIB ( cx) , & member_metadata[ ..] ) ;
18261832 llvm:: LLVMRustDICompositeTypeReplaceArrays (
1827- DIB ( cx) , composite_type_metadata , Some ( type_array) , type_params) ;
1833+ DIB ( cx) , member_holding_stub , Some ( type_array) , type_params) ;
18281834 }
18291835}
18301836
0 commit comments