Return a struct from query intrinsic
to be able to add another field in the next commit
This commit is contained in:
parent
aa2ae6b491
commit
f2612daf58
14 changed files with 33 additions and 26 deletions
|
@ -323,8 +323,8 @@ fn resolve_rust_intrinsic<'tcx>(
|
|||
func_ty: Ty<'tcx>,
|
||||
) -> Option<(Symbol, GenericArgsRef<'tcx>)> {
|
||||
if let ty::FnDef(def_id, args) = *func_ty.kind() {
|
||||
let name = tcx.intrinsic(def_id)?;
|
||||
return Some((name, args));
|
||||
let intrinsic = tcx.intrinsic(def_id)?;
|
||||
return Some((intrinsic.name, args));
|
||||
}
|
||||
None
|
||||
}
|
||||
|
|
|
@ -14,9 +14,9 @@ impl<'tcx> MirPass<'tcx> for LowerIntrinsics {
|
|||
if let TerminatorKind::Call { func, args, destination, target, .. } =
|
||||
&mut terminator.kind
|
||||
&& let ty::FnDef(def_id, generic_args) = *func.ty(local_decls, tcx).kind()
|
||||
&& let Some(intrinsic_name) = tcx.intrinsic(def_id)
|
||||
&& let Some(intrinsic) = tcx.intrinsic(def_id)
|
||||
{
|
||||
match intrinsic_name {
|
||||
match intrinsic.name {
|
||||
sym::unreachable => {
|
||||
terminator.kind = TerminatorKind::Unreachable;
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ impl<'tcx> MirPass<'tcx> for LowerIntrinsics {
|
|||
lhs = args.next().unwrap();
|
||||
rhs = args.next().unwrap();
|
||||
}
|
||||
let bin_op = match intrinsic_name {
|
||||
let bin_op = match intrinsic.name {
|
||||
sym::wrapping_add => BinOp::Add,
|
||||
sym::wrapping_sub => BinOp::Sub,
|
||||
sym::wrapping_mul => BinOp::Mul,
|
||||
|
@ -136,7 +136,7 @@ impl<'tcx> MirPass<'tcx> for LowerIntrinsics {
|
|||
lhs = args.next().unwrap();
|
||||
rhs = args.next().unwrap();
|
||||
}
|
||||
let bin_op = match intrinsic_name {
|
||||
let bin_op = match intrinsic.name {
|
||||
sym::add_with_overflow => BinOp::Add,
|
||||
sym::sub_with_overflow => BinOp::Sub,
|
||||
sym::mul_with_overflow => BinOp::Mul,
|
||||
|
@ -155,7 +155,7 @@ impl<'tcx> MirPass<'tcx> for LowerIntrinsics {
|
|||
sym::size_of | sym::min_align_of => {
|
||||
if let Some(target) = *target {
|
||||
let tp_ty = generic_args.type_at(0);
|
||||
let null_op = match intrinsic_name {
|
||||
let null_op = match intrinsic.name {
|
||||
sym::size_of => NullOp::SizeOf,
|
||||
sym::min_align_of => NullOp::AlignOf,
|
||||
_ => bug!("unexpected intrinsic"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue