about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaan de Graaf <daandegraaf9@gmail.com>2019-03-11 21:26:49 +0100
committerSaleem Jaffer <ssaleem1992@gmail.com>2019-05-04 15:17:26 +0530
commit82410e800f864684ec5009ea0cecd9614155ca06 (patch)
tree44dcefbb962ecf52378637a6b80face6f6e9addd
parent7257fc34de8c2c66cf0fa1d628af54f50d368caf (diff)
downloadrust-82410e800f864684ec5009ea0cecd9614155ca06.tar.gz
rust-82410e800f864684ec5009ea0cecd9614155ca06.zip
impl `pointee_info_at` in TyLayout.
-rw-r--r--src/librustc_codegen_llvm/abi.rs4
-rw-r--r--src/librustc_target/abi/mod.rs4
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> {