Skip to content

Commit 72e98c0

Browse files
committed
MemberDescription
1 parent 7b08855 commit 72e98c0

File tree

1 file changed

+16
-29
lines changed

1 file changed

+16
-29
lines changed

src/librustc_codegen_llvm/debuginfo/metadata.rs

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use rustc::mir::interpret::truncate;
2828
use rustc_data_structures::fingerprint::Fingerprint;
2929
use rustc::ty::Instance;
3030
use rustc::ty::{self, AdtKind, ParamEnv, Ty, TyCtxt};
31-
use rustc::ty::layout::{self, Align, Integer, IntegerExt, LayoutOf,
31+
use rustc::ty::layout::{self, MemoryPosition, Integer, IntegerExt, LayoutOf,
3232
PrimitiveExt, Size, TyLayout, VariantIdx};
3333
use rustc::ty::subst::{GenericArgKind, SubstsRef};
3434
use rustc::session::config::{self, DebugInfo};
@@ -385,17 +385,15 @@ fn vec_slice_metadata(
385385
name: "data_ptr".to_owned(),
386386
type_metadata: data_ptr_metadata,
387387
offset: Size::ZERO,
388-
size: pointer_size,
389-
align: pointer_align,
388+
mem_pos: MemoryPosition::new(pointer_size, pointer_align),
390389
flags: DIFlags::FlagZero,
391390
discriminant: None,
392391
},
393392
MemberDescription {
394393
name: "length".to_owned(),
395394
type_metadata: type_metadata(cx, cx.tcx.types.usize, span),
396395
offset: pointer_size,
397-
size: usize_size,
398-
align: usize_align,
396+
mem_pos: MemoryPosition::new(usize_size, usize_align),
399397
flags: DIFlags::FlagZero,
400398
discriminant: None,
401399
},
@@ -496,17 +494,15 @@ fn trait_pointer_metadata(
496494
cx.tcx.mk_mut_ptr(cx.tcx.types.u8),
497495
syntax_pos::DUMMY_SP),
498496
offset: layout.fields.offset(0),
499-
size: data_ptr_field.pref_pos.size,
500-
align: data_ptr_field.pref_pos.align.abi,
497+
mem_pos: data_ptr_field.pref_pos.mem_pos(),
501498
flags: DIFlags::FlagArtificial,
502499
discriminant: None,
503500
},
504501
MemberDescription {
505502
name: "vtable".to_owned(),
506503
type_metadata: type_metadata(cx, vtable_field.ty, syntax_pos::DUMMY_SP),
507504
offset: layout.fields.offset(1),
508-
size: vtable_field.pref_pos.size,
509-
align: vtable_field.pref_pos.align.abi,
505+
mem_pos: vtable_field.pref_pos.mem_pos(),
510506
flags: DIFlags::FlagArtificial,
511507
discriminant: None,
512508
},
@@ -1036,8 +1032,7 @@ struct MemberDescription<'ll> {
10361032
name: String,
10371033
type_metadata: &'ll DIType,
10381034
offset: Size,
1039-
size: Size,
1040-
align: Align,
1035+
mem_pos: MemoryPosition,
10411036
flags: DIFlags,
10421037
discriminant: Option<u64>,
10431038
}
@@ -1054,8 +1049,8 @@ impl<'ll> MemberDescription<'ll> {
10541049
member_name.as_ptr(),
10551050
unknown_file_metadata(cx),
10561051
UNKNOWN_LINE_NUMBER,
1057-
self.size.bits(),
1058-
self.align.bits() as u32,
1052+
self.mem_pos.size.bits(),
1053+
self.mem_pos.align.bits() as u32,
10591054
self.offset.bits(),
10601055
match self.discriminant {
10611056
None => None,
@@ -1128,8 +1123,7 @@ impl<'tcx> StructMemberDescriptionFactory<'tcx> {
11281123
name,
11291124
type_metadata: type_metadata(cx, field.ty, self.span),
11301125
offset: layout.fields.offset(i),
1131-
size: field.pref_pos.size,
1132-
align: field.pref_pos.align.abi,
1126+
mem_pos: field.pref_pos.mem_pos(),
11331127
flags: DIFlags::FlagZero,
11341128
discriminant: None,
11351129
}
@@ -1194,8 +1188,7 @@ impl<'tcx> TupleMemberDescriptionFactory<'tcx> {
11941188
name: format!("__{}", i),
11951189
type_metadata: type_metadata(cx, component_type, self.span),
11961190
offset: layout.fields.offset(i),
1197-
size,
1198-
align,
1191+
mem_pos: MemoryPosition::new(size, align),
11991192
flags: DIFlags::FlagZero,
12001193
discriminant: None,
12011194
}
@@ -1252,8 +1245,7 @@ impl<'tcx> UnionMemberDescriptionFactory<'tcx> {
12521245
name: f.ident.to_string(),
12531246
type_metadata: type_metadata(cx, field.ty, self.span),
12541247
offset: Size::ZERO,
1255-
size: field.pref_pos.size,
1256-
align: field.pref_pos.align.abi,
1248+
mem_pos: field.pref_pos.mem_pos(),
12571249
flags: DIFlags::FlagZero,
12581250
discriminant: None,
12591251
}
@@ -1386,8 +1378,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
13861378
},
13871379
type_metadata: variant_type_metadata,
13881380
offset: Size::ZERO,
1389-
size: self.layout.pref_pos.size,
1390-
align: self.layout.pref_pos.align.abi,
1381+
mem_pos: self.layout.pref_pos.mem_pos(),
13911382
flags: DIFlags::FlagZero,
13921383
discriminant: None,
13931384
}
@@ -1435,8 +1426,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
14351426
},
14361427
type_metadata: variant_type_metadata,
14371428
offset: Size::ZERO,
1438-
size: self.layout.pref_pos.size,
1439-
align: self.layout.pref_pos.align.abi,
1429+
mem_pos: self.layout.pref_pos.mem_pos(),
14401430
flags: DIFlags::FlagZero,
14411431
discriminant: Some(
14421432
self.layout.ty.discriminant_for_variant(cx.tcx, i).unwrap().val as u64
@@ -1510,8 +1500,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
15101500
name,
15111501
type_metadata: variant_type_metadata,
15121502
offset: Size::ZERO,
1513-
size: variant.pref_pos.size,
1514-
align: variant.pref_pos.align.abi,
1503+
mem_pos: variant.pref_pos.mem_pos(),
15151504
flags: DIFlags::FlagZero,
15161505
discriminant: None,
15171506
}
@@ -1554,8 +1543,7 @@ impl EnumMemberDescriptionFactory<'ll, 'tcx> {
15541543
name: variant_info.variant_name(),
15551544
type_metadata: variant_type_metadata,
15561545
offset: Size::ZERO,
1557-
size: self.layout.pref_pos.size,
1558-
align: self.layout.pref_pos.align.abi,
1546+
mem_pos: self.layout.pref_pos.mem_pos(),
15591547
flags: DIFlags::FlagZero,
15601548
discriminant: niche_value,
15611549
}
@@ -1593,8 +1581,7 @@ impl VariantMemberDescriptionFactory<'ll, 'tcx> {
15931581
type_metadata(cx, ty, self.span)
15941582
},
15951583
offset: self.offsets[i],
1596-
size,
1597-
align,
1584+
mem_pos:MemoryPosition::new(size, align),
15981585
flags: DIFlags::FlagZero,
15991586
discriminant: None,
16001587
}

0 commit comments

Comments
 (0)