diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-09-10 19:34:11 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-11-19 02:14:29 +0200 |
| commit | 50a3fd0097f0dcd3661387ebb4dee8062b8caab4 (patch) | |
| tree | 2418ebaeb96d0c028c0e38ba1b45f363396a2680 | |
| parent | 44eef7c9ac6d2944131c4216136a2c39e0c5da30 (diff) | |
| download | rust-50a3fd0097f0dcd3661387ebb4dee8062b8caab4.tar.gz rust-50a3fd0097f0dcd3661387ebb4dee8062b8caab4.zip | |
rustc: remove useless 0 prefix from Layout::StructWrappedNullablePointer's discrfield.
| -rw-r--r-- | src/librustc/ty/layout.rs | 3 | ||||
| -rw-r--r-- | src/librustc_trans/debuginfo/metadata.rs | 1 | ||||
| -rw-r--r-- | src/librustc_trans/mir/lvalue.rs | 2 |
3 files changed, 1 insertions, 5 deletions
diff --git a/src/librustc/ty/layout.rs b/src/librustc/ty/layout.rs index 4fea7ee082c..a7c707de481 100644 --- a/src/librustc/ty/layout.rs +++ b/src/librustc/ty/layout.rs @@ -1145,7 +1145,6 @@ pub enum Layout { StructWrappedNullablePointer { nndiscr: u64, nonnull: Struct, - /// N.B. There is a 0 at the start, for LLVM GEP through a pointer. discrfield: FieldPath, /// Like discrfield, but in source order. For debuginfo. discrfield_source: FieldPath @@ -1472,9 +1471,7 @@ impl<'a, 'tcx> Layout { let mut i = *path.last().unwrap(); i = st.memory_index[i as usize]; *path.last_mut().unwrap() = i; - path.push(0); // For GEP through a pointer. path.reverse(); - path_source.push(0); path_source.reverse(); return success(StructWrappedNullablePointer { diff --git a/src/librustc_trans/debuginfo/metadata.rs b/src/librustc_trans/debuginfo/metadata.rs index 879a7467857..82c975c751f 100644 --- a/src/librustc_trans/debuginfo/metadata.rs +++ b/src/librustc_trans/debuginfo/metadata.rs @@ -1312,7 +1312,6 @@ impl<'tcx> EnumMemberDescriptionFactory<'tcx> { let null_variant_index = (1 - nndiscr) as usize; let null_variant_name = adt.variants[null_variant_index].name; let discrfield_source = discrfield_source.iter() - .skip(1) .map(|x| x.to_string()) .collect::<Vec<_>>().join("$"); let union_member_name = format!("RUST$ENCODED$ENUM${}${}", diff --git a/src/librustc_trans/mir/lvalue.rs b/src/librustc_trans/mir/lvalue.rs index c11596b0140..7cf35c4405c 100644 --- a/src/librustc_trans/mir/lvalue.rs +++ b/src/librustc_trans/mir/lvalue.rs @@ -332,7 +332,7 @@ impl<'a, 'tcx> LvalueRef<'tcx> { // Double index to account for padding (FieldPath already uses `Struct::memory_index`) fn gepi_struct_llfields_path(self, bcx: &Builder, discrfield: &layout::FieldPath) -> ValueRef { - let path = iter::once(C_u32(bcx.ccx, 0)).chain(discrfield[1..].iter().map(|&i| { + let path = iter::once(C_u32(bcx.ccx, 0)).chain(discrfield.iter().map(|&i| { let i = adt::memory_index_to_gep(i as u64); assert_eq!(i as u32 as u64, i); C_u32(bcx.ccx, i as u32) |
