about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2024-04-22 17:03:48 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2024-04-22 17:03:48 +0000
commit569df1dad3dabb0534059aa7d72e68ed1879127a (patch)
tree896e70f37259297bf18cb9db0fb34598b3af1d35
parent8bf1687879dded8a91b844bac2ff66cd5609d024 (diff)
downloadrust-569df1dad3dabb0534059aa7d72e68ed1879127a.tar.gz
rust-569df1dad3dabb0534059aa7d72e68ed1879127a.zip
Inline CValue::pointer_from_data_and_meta
It only has a single use and doesn't need access to CValue internals.
-rw-r--r--src/base.rs8
-rw-r--r--src/value_and_place.rs18
2 files changed, 7 insertions, 19 deletions
diff --git a/src/base.rs b/src/base.rs
index 4c53a9db7bd..e3d050df4cd 100644
--- a/src/base.rs
+++ b/src/base.rs
@@ -825,7 +825,13 @@ fn codegen_stmt<'tcx>(
                     };
                     let data = codegen_operand(fx, data);
                     let meta = codegen_operand(fx, meta);
-                    let ptr_val = CValue::pointer_from_data_and_meta(fx, data, meta, layout);
+                    assert!(data.layout().ty.is_unsafe_ptr());
+                    assert!(layout.ty.is_unsafe_ptr());
+                    let ptr_val = if meta.layout().is_zst() {
+                        data.cast_pointer_to(layout)
+                    } else {
+                        CValue::by_val_pair(data.load_scalar(fx), meta.load_scalar(fx), layout)
+                    };
                     lval.write_cvalue(fx, ptr_val);
                 }
                 Rvalue::Aggregate(ref kind, ref operands) => {
diff --git a/src/value_and_place.rs b/src/value_and_place.rs
index eeae98ed04d..dded6df7771 100644
--- a/src/value_and_place.rs
+++ b/src/value_and_place.rs
@@ -95,24 +95,6 @@ impl<'tcx> CValue<'tcx> {
         CValue(CValueInner::ByValPair(value, extra), layout)
     }
 
-    /// For `AggregateKind::RawPtr`, create a pointer from its parts.
-    ///
-    /// Panics if the `layout` is not a raw pointer.
-    pub(crate) fn pointer_from_data_and_meta(
-        fx: &mut FunctionCx<'_, '_, 'tcx>,
-        data: CValue<'tcx>,
-        meta: CValue<'tcx>,
-        layout: TyAndLayout<'tcx>,
-    ) -> CValue<'tcx> {
-        assert!(data.layout().ty.is_unsafe_ptr());
-        assert!(layout.ty.is_unsafe_ptr());
-        if meta.layout().is_zst() {
-            data.cast_pointer_to(layout)
-        } else {
-            CValue::by_val_pair(data.load_scalar(fx), meta.load_scalar(fx), layout)
-        }
-    }
-
     pub(crate) fn layout(&self) -> TyAndLayout<'tcx> {
         self.1
     }