Pass FnAbi to find_mir_or_eval_fn
This commit is contained in:
parent
a4079b29bb
commit
fd8b983452
31 changed files with 484 additions and 455 deletions
|
@ -1,9 +1,11 @@
|
|||
use rustc_middle::mir::interpret::{AllocId, ConstAllocation, InterpResult};
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::query::TyCtxtAt;
|
||||
use rustc_middle::ty::Ty;
|
||||
use rustc_middle::ty::layout::TyAndLayout;
|
||||
use rustc_middle::{bug, span_bug, ty};
|
||||
use rustc_span::def_id::DefId;
|
||||
use rustc_target::callconv::FnAbi;
|
||||
|
||||
use crate::interpret::{
|
||||
self, HasStaticRootDefId, ImmTy, Immediate, InterpCx, PointerArithmetic, interp_ok,
|
||||
|
@ -86,7 +88,7 @@ impl<'tcx> interpret::Machine<'tcx> for DummyMachine {
|
|||
fn find_mir_or_eval_fn(
|
||||
_ecx: &mut InterpCx<'tcx, Self>,
|
||||
_instance: ty::Instance<'tcx>,
|
||||
_abi: rustc_abi::ExternAbi,
|
||||
_abi: &FnAbi<'tcx, Ty<'tcx>>,
|
||||
_args: &[interpret::FnArg<'tcx, Self::Provenance>],
|
||||
_destination: &interpret::MPlaceTy<'tcx, Self::Provenance>,
|
||||
_target: Option<BasicBlock>,
|
||||
|
|
|
@ -2,7 +2,7 @@ use std::borrow::{Borrow, Cow};
|
|||
use std::fmt;
|
||||
use std::hash::Hash;
|
||||
|
||||
use rustc_abi::{Align, ExternAbi, Size};
|
||||
use rustc_abi::{Align, Size};
|
||||
use rustc_ast::Mutability;
|
||||
use rustc_data_structures::fx::{FxHashMap, FxIndexMap, IndexEntry};
|
||||
use rustc_hir::def_id::{DefId, LocalDefId};
|
||||
|
@ -14,6 +14,7 @@ use rustc_middle::ty::layout::{HasTypingEnv, TyAndLayout};
|
|||
use rustc_middle::ty::{self, Ty, TyCtxt};
|
||||
use rustc_middle::{bug, mir};
|
||||
use rustc_span::{Span, Symbol, sym};
|
||||
use rustc_target::callconv::FnAbi;
|
||||
use tracing::debug;
|
||||
|
||||
use super::error::*;
|
||||
|
@ -339,7 +340,7 @@ impl<'tcx> interpret::Machine<'tcx> for CompileTimeMachine<'tcx> {
|
|||
fn find_mir_or_eval_fn(
|
||||
ecx: &mut InterpCx<'tcx, Self>,
|
||||
orig_instance: ty::Instance<'tcx>,
|
||||
_abi: ExternAbi,
|
||||
_abi: &FnAbi<'tcx, Ty<'tcx>>,
|
||||
args: &[FnArg<'tcx>],
|
||||
dest: &MPlaceTy<'tcx>,
|
||||
ret: Option<mir::BasicBlock>,
|
||||
|
|
|
@ -519,7 +519,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
|
|||
return M::call_extra_fn(
|
||||
self,
|
||||
extra,
|
||||
caller_abi,
|
||||
caller_fn_abi,
|
||||
args,
|
||||
destination,
|
||||
target,
|
||||
|
@ -570,7 +570,7 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
|
|||
let Some((body, instance)) = M::find_mir_or_eval_fn(
|
||||
self,
|
||||
instance,
|
||||
caller_abi,
|
||||
caller_fn_abi,
|
||||
args,
|
||||
destination,
|
||||
target,
|
||||
|
|
|
@ -6,7 +6,7 @@ use std::borrow::{Borrow, Cow};
|
|||
use std::fmt::Debug;
|
||||
use std::hash::Hash;
|
||||
|
||||
use rustc_abi::{Align, ExternAbi, Size};
|
||||
use rustc_abi::{Align, Size};
|
||||
use rustc_apfloat::{Float, FloatConvert};
|
||||
use rustc_ast::{InlineAsmOptions, InlineAsmTemplatePiece};
|
||||
use rustc_middle::query::TyCtxtAt;
|
||||
|
@ -15,6 +15,7 @@ use rustc_middle::ty::layout::TyAndLayout;
|
|||
use rustc_middle::{mir, ty};
|
||||
use rustc_span::Span;
|
||||
use rustc_span::def_id::DefId;
|
||||
use rustc_target::callconv::FnAbi;
|
||||
|
||||
use super::{
|
||||
AllocBytes, AllocId, AllocKind, AllocRange, Allocation, CTFE_ALLOC_SALT, ConstAllocation,
|
||||
|
@ -201,7 +202,7 @@ pub trait Machine<'tcx>: Sized {
|
|||
fn find_mir_or_eval_fn(
|
||||
ecx: &mut InterpCx<'tcx, Self>,
|
||||
instance: ty::Instance<'tcx>,
|
||||
abi: ExternAbi,
|
||||
abi: &FnAbi<'tcx, Ty<'tcx>>,
|
||||
args: &[FnArg<'tcx, Self::Provenance>],
|
||||
destination: &MPlaceTy<'tcx, Self::Provenance>,
|
||||
target: Option<mir::BasicBlock>,
|
||||
|
@ -213,7 +214,7 @@ pub trait Machine<'tcx>: Sized {
|
|||
fn call_extra_fn(
|
||||
ecx: &mut InterpCx<'tcx, Self>,
|
||||
fn_val: Self::ExtraFnVal,
|
||||
abi: ExternAbi,
|
||||
abi: &FnAbi<'tcx, Ty<'tcx>>,
|
||||
args: &[FnArg<'tcx, Self::Provenance>],
|
||||
destination: &MPlaceTy<'tcx, Self::Provenance>,
|
||||
target: Option<mir::BasicBlock>,
|
||||
|
@ -656,7 +657,7 @@ pub macro compile_time_machine(<$tcx: lifetime>) {
|
|||
fn call_extra_fn(
|
||||
_ecx: &mut InterpCx<$tcx, Self>,
|
||||
fn_val: !,
|
||||
_abi: ExternAbi,
|
||||
_abi: &FnAbi<$tcx, Ty<$tcx>>,
|
||||
_args: &[FnArg<$tcx>],
|
||||
_destination: &MPlaceTy<$tcx, Self::Provenance>,
|
||||
_target: Option<mir::BasicBlock>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue