diff options
| author | Daan de Graaf <daandegraaf9@gmail.com> | 2019-03-11 21:26:49 +0100 |
|---|---|---|
| committer | Saleem Jaffer <ssaleem1992@gmail.com> | 2019-05-04 15:17:26 +0530 |
| commit | 82410e800f864684ec5009ea0cecd9614155ca06 (patch) | |
| tree | 44dcefbb962ecf52378637a6b80face6f6e9addd | |
| parent | 7257fc34de8c2c66cf0fa1d628af54f50d368caf (diff) | |
| download | rust-82410e800f864684ec5009ea0cecd9614155ca06.tar.gz rust-82410e800f864684ec5009ea0cecd9614155ca06.zip | |
impl `pointee_info_at` in TyLayout.
| -rw-r--r-- | src/librustc_codegen_llvm/abi.rs | 4 | ||||
| -rw-r--r-- | src/librustc_target/abi/mod.rs | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/librustc_codegen_llvm/abi.rs b/src/librustc_codegen_llvm/abi.rs index 7a700882237..a59f756570f 100644 --- a/src/librustc_codegen_llvm/abi.rs +++ b/src/librustc_codegen_llvm/abi.rs @@ -18,7 +18,7 @@ use rustc_target::abi::call::ArgType; use rustc_codegen_ssa::traits::*; use rustc_target::abi::{HasDataLayout, LayoutOf, Size, TyLayout, Abi as LayoutAbi}; -use rustc::ty::{self, Ty, Instance}; +use rustc::ty::{self, Ty, Instance, ParamEnv}; use rustc::ty::layout::{self, PointerKind}; use libc::c_uint; @@ -484,7 +484,7 @@ impl<'tcx> FnTypeExt<'tcx> for FnType<'tcx, Ty<'tcx>> { } } - if let Some(pointee) = layout.pointee_info_at(cx, offset) { + if let Some(pointee) = layout.pointee_info_at(cx, offset, ParamEnv::reveal_all()) { if let Some(kind) = pointee.safe { attrs.pointee_size = pointee.size; attrs.pointee_align = Some(pointee.align); diff --git a/src/librustc_target/abi/mod.rs b/src/librustc_target/abi/mod.rs index 1cdef7b0064..6dd622b3f0f 100644 --- a/src/librustc_target/abi/mod.rs +++ b/src/librustc_target/abi/mod.rs @@ -958,6 +958,10 @@ impl<'a, Ty> TyLayout<'a, Ty> { where Ty: TyLayoutMethods<'a, C>, C: LayoutOf<Ty = Ty> { Ty::field(self, cx, i) } + pub fn pointee_info_at<C>(self, cx: &C, offset: Size, param_env: Ty::ParamEnv) -> Option<PointeeInfo> + where Ty: TyLayoutMethods<'a, C>, C: LayoutOf<Ty = Ty> { + Ty::pointee_info_at(self, cx, offset, param_env) + } } impl<'a, Ty> TyLayout<'a, Ty> { |
