about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2019-08-30 12:42:18 +0200
committerbjorn3 <bjorn3@users.noreply.github.com>2019-08-30 12:42:24 +0200
commitdeeae2fce46cba99a2dcce835b85f7d42238c3c8 (patch)
tree2252488d601aad7b78e43fc515710b420b2b8462
parent16593d264c7803b78156c02b2ac596f6d98333c7 (diff)
downloadrust-deeae2fce46cba99a2dcce835b85f7d42238c3c8.tar.gz
rust-deeae2fce46cba99a2dcce835b85f7d42238c3c8.zip
Small change
-rw-r--r--src/abi/mod.rs7
-rw-r--r--src/abi/pass_mode.rs6
2 files changed, 4 insertions, 9 deletions
diff --git a/src/abi/mod.rs b/src/abi/mod.rs
index a724ea2d8ec..dc6bac0e426 100644
--- a/src/abi/mod.rs
+++ b/src/abi/mod.rs
@@ -49,12 +49,7 @@ fn clif_sig_from_fn_sig<'tcx>(tcx: TyCtxt<'tcx>, sig: FnSig<'tcx>, is_vtable_fn:
                 // See https://github.com/rust-lang/rust/blob/37b6a5e5e82497caf5353d9d856e4eb5d14cbe06/src/librustc/ty/layout.rs#L2519-L2572 for more info
                 layout = tcx.layout_of(ParamEnv::reveal_all().and(tcx.mk_mut_ptr(tcx.mk_unit()))).unwrap();
             }
-            match get_pass_mode(tcx, layout) {
-                PassMode::NoPass => Empty,
-                PassMode::ByVal(clif_ty) => Single(clif_ty),
-                PassMode::ByValPair(clif_ty_a, clif_ty_b) => Pair(clif_ty_a, clif_ty_b),
-                PassMode::ByRef => Single(pointer_ty(tcx)),
-            }.into_iter()
+            get_pass_mode(tcx, layout).get_param_ty(tcx).into_iter()
         }).flatten();
 
     let (params, returns) = match get_pass_mode(tcx, tcx.layout_of(ParamEnv::reveal_all().and(output)).unwrap()) {
diff --git a/src/abi/pass_mode.rs b/src/abi/pass_mode.rs
index c3a479578bc..4608562e993 100644
--- a/src/abi/pass_mode.rs
+++ b/src/abi/pass_mode.rs
@@ -65,12 +65,12 @@ impl<T: std::fmt::Debug> EmptySinglePair<T> {
 pub use EmptySinglePair::*;
 
 impl PassMode {
-    pub fn get_param_ty(self, fx: &FunctionCx<impl Backend>) -> EmptySinglePair<Type> {
+    pub fn get_param_ty(self, tcx: TyCtxt<'_>) -> EmptySinglePair<Type> {
         match self {
             PassMode::NoPass => Empty,
             PassMode::ByVal(clif_type) => Single(clif_type),
             PassMode::ByValPair(a, b) => Pair(a, b),
-            PassMode::ByRef => Single(fx.pointer_type),
+            PassMode::ByRef => Single(pointer_ty(tcx)),
         }
     }
 }
@@ -141,7 +141,7 @@ pub fn cvalue_for_param<'tcx>(
         return None;
     }
 
-    let clif_types = pass_mode.get_param_ty(fx);
+    let clif_types = pass_mode.get_param_ty(fx.tcx);
     let ebb_params = clif_types.map(|t| fx.bcx.append_ebb_param(start_ebb, t));
 
     #[cfg(debug_assertions)]