mirror of https://github.com/rust-lang/rust.git
rename MIR int2ptr casts to match library name
This commit is contained in:
parent
67b9d7d184
commit
038e7c6c38
|
@ -2263,7 +2263,7 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
|
|||
}
|
||||
}
|
||||
|
||||
CastKind::PointerFromExposedAddress => {
|
||||
CastKind::PointerWithExposedProvenance => {
|
||||
let ty_from = op.ty(body, tcx);
|
||||
let cast_ty_from = CastTy::from_ty(ty_from);
|
||||
let cast_ty_to = CastTy::from_ty(*ty);
|
||||
|
@ -2273,7 +2273,7 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
|
|||
span_mirbug!(
|
||||
self,
|
||||
rvalue,
|
||||
"Invalid PointerFromExposedAddress cast {:?} -> {:?}",
|
||||
"Invalid PointerWithExposedProvenance cast {:?} -> {:?}",
|
||||
ty_from,
|
||||
ty
|
||||
)
|
||||
|
|
|
@ -642,7 +642,7 @@ fn codegen_stmt<'tcx>(
|
|||
| CastKind::FnPtrToPtr
|
||||
| CastKind::PtrToPtr
|
||||
| CastKind::PointerExposeAddress
|
||||
| CastKind::PointerFromExposedAddress,
|
||||
| CastKind::PointerWithExposedProvenance,
|
||||
ref operand,
|
||||
to_ty,
|
||||
) => {
|
||||
|
|
|
@ -508,7 +508,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
|
|||
// Since int2ptr can have arbitrary integer types as input (so we have to do
|
||||
// sign extension and all that), it is currently best handled in the same code
|
||||
// path as the other integer-to-X casts.
|
||||
| mir::CastKind::PointerFromExposedAddress => {
|
||||
| mir::CastKind::PointerWithExposedProvenance => {
|
||||
assert!(bx.cx().is_backend_immediate(cast));
|
||||
let ll_t_out = bx.cx().immediate_backend_type(cast);
|
||||
if operand.layout.abi.is_uninhabited() {
|
||||
|
|
|
@ -40,7 +40,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
self.write_immediate(*res, dest)?;
|
||||
}
|
||||
|
||||
CastKind::PointerFromExposedAddress => {
|
||||
CastKind::PointerWithExposedProvenance => {
|
||||
let src = self.read_immediate(src)?;
|
||||
let res = self.pointer_from_exposed_address_cast(&src, cast_layout)?;
|
||||
self.write_immediate(*res, dest)?;
|
||||
|
|
|
@ -547,7 +547,7 @@ impl<'tcx> Visitor<'tcx> for Checker<'_, 'tcx> {
|
|||
Rvalue::Cast(CastKind::PointerExposeAddress, _, _) => {
|
||||
self.check_op(ops::RawPtrToIntCast);
|
||||
}
|
||||
Rvalue::Cast(CastKind::PointerFromExposedAddress, _, _) => {
|
||||
Rvalue::Cast(CastKind::PointerWithExposedProvenance, _, _) => {
|
||||
// Since no pointer can ever get exposed (rejected above), this is easy to support.
|
||||
}
|
||||
|
||||
|
|
|
@ -1057,7 +1057,7 @@ impl<'a, 'tcx> Visitor<'tcx> for TypeChecker<'a, 'tcx> {
|
|||
// FIXME(dyn-star): make sure nothing needs to be done here.
|
||||
}
|
||||
// FIXME: Add Checks for these
|
||||
CastKind::PointerFromExposedAddress
|
||||
CastKind::PointerWithExposedProvenance
|
||||
| CastKind::PointerExposeAddress
|
||||
| CastKind::PointerCoercion(_) => {}
|
||||
CastKind::IntToInt | CastKind::IntToFloat => {
|
||||
|
|
|
@ -426,7 +426,7 @@ impl<'tcx> Rvalue<'tcx> {
|
|||
| CastKind::FnPtrToPtr
|
||||
| CastKind::PtrToPtr
|
||||
| CastKind::PointerCoercion(_)
|
||||
| CastKind::PointerFromExposedAddress
|
||||
| CastKind::PointerWithExposedProvenance
|
||||
| CastKind::DynStar
|
||||
| CastKind::Transmute,
|
||||
_,
|
||||
|
|
|
@ -1319,7 +1319,7 @@ pub enum CastKind {
|
|||
PointerExposeAddress,
|
||||
/// An address-to-pointer cast that picks up an exposed provenance.
|
||||
/// See the docs on `with_exposed_provenance` for more details.
|
||||
PointerFromExposedAddress,
|
||||
PointerWithExposedProvenance,
|
||||
/// Pointer related casts that are done by coercions. Note that reference-to-raw-ptr casts are
|
||||
/// translated into `&raw mut/const *r`, i.e., they are not actually casts.
|
||||
PointerCoercion(PointerCoercion),
|
||||
|
|
|
@ -85,7 +85,7 @@ pub fn mir_cast_kind<'tcx>(from_ty: Ty<'tcx>, cast_ty: Ty<'tcx>) -> mir::CastKin
|
|||
(Some(CastTy::Ptr(_) | CastTy::FnPtr), Some(CastTy::Int(_))) => {
|
||||
mir::CastKind::PointerExposeAddress
|
||||
}
|
||||
(Some(CastTy::Int(_)), Some(CastTy::Ptr(_))) => mir::CastKind::PointerFromExposedAddress,
|
||||
(Some(CastTy::Int(_)), Some(CastTy::Ptr(_))) => mir::CastKind::PointerWithExposedProvenance,
|
||||
(_, Some(CastTy::DynStar)) => mir::CastKind::DynStar,
|
||||
(Some(CastTy::Int(_)), Some(CastTy::Int(_))) => mir::CastKind::IntToInt,
|
||||
(Some(CastTy::FnPtr), Some(CastTy::Ptr(_))) => mir::CastKind::FnPtrToPtr,
|
||||
|
|
|
@ -274,7 +274,7 @@ impl<'tcx> Stable<'tcx> for mir::CastKind {
|
|||
use rustc_middle::mir::CastKind::*;
|
||||
match self {
|
||||
PointerExposeAddress => stable_mir::mir::CastKind::PointerExposeAddress,
|
||||
PointerFromExposedAddress => stable_mir::mir::CastKind::PointerFromExposedAddress,
|
||||
PointerWithExposedProvenance => stable_mir::mir::CastKind::PointerWithExposedProvenance,
|
||||
PointerCoercion(c) => stable_mir::mir::CastKind::PointerCoercion(c.stable(tables)),
|
||||
DynStar => stable_mir::mir::CastKind::DynStar,
|
||||
IntToInt => stable_mir::mir::CastKind::IntToInt,
|
||||
|
|
|
@ -968,7 +968,7 @@ pub enum PointerCoercion {
|
|||
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
|
||||
pub enum CastKind {
|
||||
PointerExposeAddress,
|
||||
PointerFromExposedAddress,
|
||||
PointerWithExposedProvenance,
|
||||
PointerCoercion(PointerCoercion),
|
||||
DynStar,
|
||||
IntToInt,
|
||||
|
|
|
@ -112,7 +112,7 @@ fn check_rvalue<'tcx>(
|
|||
Rvalue::Repeat(operand, _)
|
||||
| Rvalue::Use(operand)
|
||||
| Rvalue::Cast(
|
||||
CastKind::PointerFromExposedAddress
|
||||
CastKind::PointerWithExposedProvenance
|
||||
| CastKind::IntToInt
|
||||
| CastKind::FloatToInt
|
||||
| CastKind::IntToFloat
|
||||
|
|
|
@ -4,7 +4,7 @@ fn int_to_ptr(_1: usize) -> *const i32 {
|
|||
let mut _0: *const i32;
|
||||
|
||||
bb0: {
|
||||
_0 = _1 as *const i32 (PointerFromExposedAddress);
|
||||
_0 = _1 as *const i32 (PointerWithExposedProvenance);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
_3 = main as fn() (PointerCoercion(ReifyFnPointer));
|
||||
_2 = move _3 as usize (PointerExposeAddress);
|
||||
StorageDead(_3);
|
||||
_1 = move _2 as *const fn() (PointerFromExposedAddress);
|
||||
_1 = move _2 as *const fn() (PointerWithExposedProvenance);
|
||||
StorageDead(_2);
|
||||
StorageDead(_1);
|
||||
_0 = const ();
|
||||
|
|
|
@ -5,6 +5,6 @@ fn main() {
|
|||
// CHECK-LABEL: fn main(
|
||||
// CHECK: [[ptr:_.*]] = main as fn() (PointerCoercion(ReifyFnPointer));
|
||||
// CHECK: [[addr:_.*]] = move [[ptr]] as usize (PointerExposeAddress);
|
||||
// CHECK: [[back:_.*]] = move [[addr]] as *const fn() (PointerFromExposedAddress);
|
||||
// CHECK: [[back:_.*]] = move [[addr]] as *const fn() (PointerWithExposedProvenance);
|
||||
let _ = main as usize as *const fn();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue