@@ -266,6 +266,7 @@ impl RecursiveTypeDescription<'ll, 'tcx> {
266
266
// ... and attach them to the stub to complete it.
267
267
set_members_of_composite_type ( cx,
268
268
unfinished_type,
269
+ metadata_stub,
269
270
member_holding_stub,
270
271
member_descriptions) ;
271
272
return MetadataCreationResult :: new ( metadata_stub, true ) ;
@@ -1215,6 +1216,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
1215
1216
set_members_of_composite_type ( cx,
1216
1217
self . enum_type ,
1217
1218
variant_type_metadata,
1219
+ variant_type_metadata,
1218
1220
member_descriptions) ;
1219
1221
vec ! [
1220
1222
MemberDescription {
@@ -1256,6 +1258,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
1256
1258
set_members_of_composite_type ( cx,
1257
1259
self . enum_type ,
1258
1260
variant_type_metadata,
1261
+ variant_type_metadata,
1259
1262
member_descriptions) ;
1260
1263
MemberDescription {
1261
1264
name : if fallback {
@@ -1298,6 +1301,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
1298
1301
set_members_of_composite_type ( cx,
1299
1302
self . enum_type ,
1300
1303
variant_type_metadata,
1304
+ variant_type_metadata,
1301
1305
variant_member_descriptions) ;
1302
1306
1303
1307
// Encode the information about the null variant in the union
@@ -1358,6 +1362,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
1358
1362
set_members_of_composite_type ( cx,
1359
1363
self . enum_type ,
1360
1364
variant_type_metadata,
1365
+ variant_type_metadata,
1361
1366
member_descriptions) ;
1362
1367
1363
1368
let niche_value = if i == dataful_variant {
@@ -1698,8 +1703,7 @@ fn prepare_enum_metadata(
1698
1703
layout. align . abi . bits ( ) as u32 ,
1699
1704
DIFlags :: FlagZero ,
1700
1705
discriminator_metadata,
1701
- empty_array,
1702
- unique_type_id_str. as_ptr ( ) )
1706
+ empty_array)
1703
1707
} ;
1704
1708
1705
1709
// The variant part must be wrapped in a struct according to DWARF.
@@ -1770,14 +1774,16 @@ fn composite_type_metadata(
1770
1774
set_members_of_composite_type ( cx,
1771
1775
composite_type,
1772
1776
composite_type_metadata,
1777
+ composite_type_metadata,
1773
1778
member_descriptions) ;
1774
1779
1775
1780
composite_type_metadata
1776
1781
}
1777
1782
1778
1783
fn set_members_of_composite_type ( cx : & CodegenCx < ' ll , ' tcx > ,
1779
1784
composite_type : Ty < ' tcx > ,
1780
- composite_type_metadata : & ' ll DICompositeType ,
1785
+ metadata_stub : & ' ll DICompositeType ,
1786
+ member_holding_stub : & ' ll DICompositeType ,
1781
1787
member_descriptions : Vec < MemberDescription < ' ll > > ) {
1782
1788
// In some rare cases LLVM metadata uniquing would lead to an existing type
1783
1789
// description being used instead of a new one created in
@@ -1788,11 +1794,11 @@ fn set_members_of_composite_type(cx: &CodegenCx<'ll, 'tcx>,
1788
1794
{
1789
1795
let mut composite_types_completed =
1790
1796
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 ) {
1792
1798
bug ! ( "debuginfo::set_members_of_composite_type() - \
1793
1799
Already completed forward declaration re-encountered.") ;
1794
1800
} else {
1795
- composite_types_completed. insert ( composite_type_metadata ) ;
1801
+ composite_types_completed. insert ( metadata_stub ) ;
1796
1802
}
1797
1803
}
1798
1804
@@ -1803,7 +1809,7 @@ fn set_members_of_composite_type(cx: &CodegenCx<'ll, 'tcx>,
1803
1809
unsafe {
1804
1810
Some ( llvm:: LLVMRustDIBuilderCreateVariantMemberType (
1805
1811
DIB ( cx) ,
1806
- composite_type_metadata ,
1812
+ member_holding_stub ,
1807
1813
member_name. as_ptr ( ) ,
1808
1814
unknown_file_metadata ( cx) ,
1809
1815
UNKNOWN_LINE_NUMBER ,
@@ -1824,7 +1830,7 @@ fn set_members_of_composite_type(cx: &CodegenCx<'ll, 'tcx>,
1824
1830
unsafe {
1825
1831
let type_array = create_DIArray ( DIB ( cx) , & member_metadata[ ..] ) ;
1826
1832
llvm:: LLVMRustDICompositeTypeReplaceArrays (
1827
- DIB ( cx) , composite_type_metadata , Some ( type_array) , type_params) ;
1833
+ DIB ( cx) , member_holding_stub , Some ( type_array) , type_params) ;
1828
1834
}
1829
1835
}
1830
1836
0 commit comments