Fix broken subtree sync

This commit is contained in:
bjorn3 2024-04-23 14:56:13 +00:00
parent 4ad6c6c581
commit f7627c3baa

View File

@ -95,23 +95,6 @@ pub(crate) fn by_val_pair(
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(
data: CValue<'tcx>,
meta: CValue<'tcx>,
layout: TyAndLayout<'tcx>,
) -> CValue<'tcx> {
assert!(layout.ty.is_unsafe_ptr());
let inner = match (data.0, meta.0) {
(CValueInner::ByVal(p), CValueInner::ByVal(m)) => CValueInner::ByValPair(p, m),
(p @ CValueInner::ByVal(_), CValueInner::ByRef(..)) if meta.1.is_zst() => p,
_ => bug!("RawPtr operands {data:?} {meta:?}"),
};
CValue(inner, layout)
}
pub(crate) fn layout(&self) -> TyAndLayout<'tcx> {
self.1
}