Skip to content

Commit b2f4a80

Browse files
committed
Fix the remaining error
1 parent e9dc80b commit b2f4a80

30 files changed

+52
-36
lines changed

src/tools/miri/src/bin/miri.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ use std::path::PathBuf;
2929
use std::str::FromStr;
3030

3131
use miri::{BacktraceStyle, BorrowTrackerMethod, ProvenanceMode, RetagFields, ValidationMode};
32+
use rustc_abi::ExternAbi;
3233
use rustc_data_structures::sync::Lrc;
3334
use rustc_driver::Compilation;
3435
use rustc_hir::def_id::LOCAL_CRATE;
@@ -367,7 +368,7 @@ fn entry_fn(tcx: TyCtxt<'_>) -> (DefId, EntryFnType) {
367368
tcx.types.isize,
368369
false,
369370
hir::Safety::Safe,
370-
Conv::Rust,
371+
ExternAbi::Rust,
371372
));
372373

373374
let correct_func_sig = check_function_signature(

src/tools/miri/src/concurrency/thread.rs

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use rustc_middle::mir::Mutability;
1515
use rustc_middle::ty::layout::TyAndLayout;
1616
use rustc_span::Span;
1717

18+
1819
use crate::concurrency::data_race;
1920
use crate::shims::tls;
2021
use crate::*;

src/tools/miri/src/eval.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use rustc_hir::def_id::DefId;
1313
use rustc_middle::ty::layout::{LayoutCx, LayoutOf};
1414
use rustc_middle::ty::{self, Ty, TyCtxt};
1515
use rustc_session::config::EntryFnType;
16+
use rustc_abi::ExternAbi;
1617

1718
use crate::concurrency::thread::TlsAllocAction;
1819
use crate::diagnostics::report_leaks;
@@ -391,7 +392,7 @@ pub fn create_ecx<'tcx>(
391392

392393
ecx.call_function(
393394
start_instance,
394-
Conv::Rust,
395+
ExternAbi::Rust,
395396
&[
396397
ImmTy::from_scalar(
397398
Scalar::from_pointer(main_ptr, &ecx),
@@ -409,7 +410,7 @@ pub fn create_ecx<'tcx>(
409410
EntryFnType::Start => {
410411
ecx.call_function(
411412
entry_instance,
412-
Conv::Rust,
413+
ExternAbi::Rust,
413414
&[argc, argv],
414415
Some(&ret_place),
415416
StackPopCleanup::Root { cleanup: true },

src/tools/miri/src/machine.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use rustc_middle::ty::{self, Instance, Ty, TyCtxt};
2323
use rustc_session::config::InliningThreshold;
2424
use rustc_span::def_id::{CrateNum, DefId};
2525
use rustc_span::{Span, SpanData, Symbol};
26+
use rustc_abi::ExternAbi;
2627

2728

2829
use crate::concurrency::cpu_affinity::{self, CpuAffinityMask};
@@ -1076,7 +1077,7 @@ impl<'tcx> Machine<'tcx> for MiriMachine<'tcx> {
10761077
// Call the lang item.
10771078
let panic = ecx.tcx.lang_items().get(reason.lang_item()).unwrap();
10781079
let panic = ty::Instance::mono(ecx.tcx.tcx, panic);
1079-
ecx.call_function(panic, Conv::Rust, &[], None, StackPopCleanup::Goto {
1080+
ecx.call_function(panic, ExternAbi::Rust, &[], None, StackPopCleanup::Goto {
10801081
ret: None,
10811082
unwind: mir::UnwindAction::Unreachable,
10821083
})?;

src/tools/miri/src/shims/foreign_items.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use rustc_middle::{mir, ty};
1313
use rustc_span::Symbol;
1414
use rustc_target::callconv::FnAbi;
1515
use rustc_middle::ty::Ty;
16+
use rustc_target::callconv::Conv;
1617

1718
use self::helpers::{ToHost, ToSoft};
1819
use super::alloc::EvalContextExt as _;
@@ -963,7 +964,7 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
963964
}
964965
// FIXME: Move these to an `arm` submodule.
965966
"llvm.aarch64.isb" if this.tcx.sess.target.arch == "aarch64" => {
966-
let [arg] = this.check_shim(abi, Conv::Unadjusted, link_name, args)?;
967+
let [arg] = this.check_shim(abi, Conv::C, link_name, args)?;
967968
let arg = this.read_scalar(arg)?.to_i32()?;
968969
match arg {
969970
// SY ("full system scope")
@@ -976,7 +977,7 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
976977
}
977978
}
978979
"llvm.arm.hint" if this.tcx.sess.target.arch == "arm" => {
979-
let [arg] = this.check_shim(abi, Conv::Unadjusted, link_name, args)?;
980+
let [arg] = this.check_shim(abi, Conv::C, link_name, args)?;
980981
let arg = this.read_scalar(arg)?.to_i32()?;
981982
// Note that different arguments might have different target feature requirements.
982983
match arg {

src/tools/miri/src/shims/panic.rs

+9-7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
use rustc_ast::Mutability;
1515
use rustc_middle::{mir, ty};
1616
use rustc_target::spec::PanicStrategy;
17+
use rustc_abi::ExternAbi;
18+
1719

1820
use self::helpers::check_arg_count;
1921
use crate::*;
@@ -87,7 +89,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
8789
trace!("try_fn: {:?}", f_instance);
8890
this.call_function(
8991
f_instance,
90-
Conv::Rust,
92+
ExternAbi::Rust,
9193
&[data.clone()],
9294
None,
9395
// Directly return to caller.
@@ -138,7 +140,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
138140
trace!("catch_fn: {:?}", f_instance);
139141
this.call_function(
140142
f_instance,
141-
Conv::Rust,
143+
ExternAbi::Rust,
142144
&[catch_unwind.data, payload],
143145
None,
144146
// Directly return to caller of `try`.
@@ -167,7 +169,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
167169
let panic = ty::Instance::mono(this.tcx.tcx, panic);
168170
this.call_function(
169171
panic,
170-
Conv::Rust,
172+
ExternAbi::Rust,
171173
&[this.mplace_to_ref(&msg)?],
172174
None,
173175
StackPopCleanup::Goto { ret: None, unwind },
@@ -186,7 +188,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
186188
let panic = ty::Instance::mono(this.tcx.tcx, panic);
187189
this.call_function(
188190
panic,
189-
Conv::Rust,
191+
ExternAbi::Rust,
190192
&[this.mplace_to_ref(&msg)?],
191193
None,
192194
StackPopCleanup::Goto { ret: None, unwind: mir::UnwindAction::Unreachable },
@@ -215,7 +217,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
215217
let panic_bounds_check = ty::Instance::mono(this.tcx.tcx, panic_bounds_check);
216218
this.call_function(
217219
panic_bounds_check,
218-
Conv::Rust,
220+
ExternAbi::Rust,
219221
&[index, len],
220222
None,
221223
StackPopCleanup::Goto { ret: None, unwind },
@@ -236,7 +238,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
236238
ty::Instance::mono(this.tcx.tcx, panic_misaligned_pointer_dereference);
237239
this.call_function(
238240
panic_misaligned_pointer_dereference,
239-
Conv::Rust,
241+
ExternAbi::Rust,
240242
&[required, found],
241243
None,
242244
StackPopCleanup::Goto { ret: None, unwind },
@@ -247,7 +249,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
247249
// Call the lang item associated with this message.
248250
let fn_item = this.tcx.require_lang_item(msg.panic_function(), None);
249251
let instance = ty::Instance::mono(this.tcx.tcx, fn_item);
250-
this.call_function(instance, Conv::Rust, &[], None, StackPopCleanup::Goto {
252+
this.call_function(instance, ExternAbi::Rust, &[], None, StackPopCleanup::Goto {
251253
ret: None,
252254
unwind,
253255
})?;

src/tools/miri/src/shims/tls.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ use std::collections::BTreeMap;
44
use std::collections::btree_map::Entry as BTreeEntry;
55
use std::task::Poll;
66

7-
use rustc_abi::{HasDataLayout, Size};
7+
8+
use rustc_abi::{HasDataLayout, Size, ExternAbi};
89
use rustc_middle::ty;
910

1011
use crate::*;
@@ -344,7 +345,7 @@ trait EvalContextPrivExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
344345

345346
this.call_function(
346347
instance,
347-
Conv::C,
348+
ExternAbi::C { unwind: false },
348349
&[ImmTy::from_scalar(data, this.machine.layouts.mut_raw_ptr)],
349350
None,
350351
StackPopCleanup::Root { cleanup: true },
@@ -381,7 +382,7 @@ trait EvalContextPrivExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
381382

382383
this.call_function(
383384
instance,
384-
Conv::C,
385+
ExternAbi::C { unwind: false },
385386
&[ImmTy::from_scalar(ptr, this.machine.layouts.mut_raw_ptr)],
386387
None,
387388
StackPopCleanup::Root { cleanup: true },

src/tools/miri/src/shims/unix/android/foreign_items.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;
5+
use rustc_target::callconv::Conv;
56

67
use crate::shims::unix::android::thread::prctl;
78
use crate::shims::unix::linux::syscall::syscall;

src/tools/miri/src/shims/unix/android/thread.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use rustc_abi::Size;
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;
5+
use rustc_target::callconv::Conv;
56

67
use crate::helpers::check_min_arg_count;
78
use crate::shims::unix::thread::{EvalContextExt as _, ThreadNameResult};

src/tools/miri/src/shims/unix/freebsd/foreign_items.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;
5+
use rustc_target::callconv::Conv;
56

67
use crate::shims::unix::*;
78
use crate::*;

src/tools/miri/src/shims/unix/linux/foreign_items.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/unix/linux/syscall.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/unix/macos/foreign_items.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/unix/solarish/foreign_items.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/unix/thread.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22

33
use crate::*;
4+
use rustc_abi::ExternAbi;
45

56
#[derive(Debug, Clone, PartialEq, Eq)]
67
pub enum ThreadNameResult {
@@ -29,7 +30,7 @@ pub trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
2930
this.start_regular_thread(
3031
Some(thread_info_place),
3132
start_routine,
32-
Conv::C,
33+
ExternAbi::C { unwind: false },
3334
func_arg,
3435
this.machine.layouts.mut_raw_ptr,
3536
)?;

src/tools/miri/src/shims/wasi/foreign_items.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/windows/foreign_items.rs

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use rustc_abi::{Align, Size};
66
use rustc_span::Symbol;
77
use rustc_target::callconv::FnAbi;
88
use rustc_middle::ty::Ty;
9+
use rustc_target::callconv::Conv;
910

1011
use self::shims::windows::handle::{Handle, PseudoHandle};
1112
use crate::shims::os_str::bytes_to_os_str;

src/tools/miri/src/shims/x86/aesni.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_middle::ty::Ty;
33
use rustc_middle::ty::layout::LayoutOf as _;
44
use rustc_span::Symbol;

src/tools/miri/src/shims/x86/avx.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_apfloat::ieee::{Double, Single};
33
use rustc_middle::mir;
44
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/x86/avx2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_middle::mir;
33
use rustc_middle::ty::Ty;
44
use rustc_middle::ty::layout::LayoutOf as _;

src/tools/miri/src/shims/x86/bmi.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;
5+
use rustc_target::callconv::Conv;
56

67
use crate::*;
78

src/tools/miri/src/shims/x86/gfni.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;
5+
use rustc_target::callconv::Conv;
56

67
use crate::*;
78

src/tools/miri/src/shims/x86/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
use rand::Rng as _;
2-
use rustc_abi::{ExternAbi, Size};
2+
use rustc_abi::Size;
33
use rustc_apfloat::Float;
44
use rustc_apfloat::ieee::Single;
55
use rustc_middle::ty::Ty;
66
use rustc_middle::ty::layout::LayoutOf as _;
77
use rustc_middle::{mir, ty};
88
use rustc_span::Symbol;
99
use rustc_target::callconv::FnAbi;
10+
use rustc_target::callconv::Conv;
1011

1112
use self::helpers::bool_to_simd_element;
1213
use crate::*;
@@ -47,7 +48,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
4748
return interp_ok(EmulateItemResult::NotSupported);
4849
}
4950

50-
let [cb_in, a, b] = this.check_shim(abi, ExternAbi::Unadjusted, link_name, args)?;
51+
let [cb_in, a, b] = this.check_shim(abi, Conv::C, link_name, args)?;
5152

5253
let op = if unprefixed_name.starts_with("add") {
5354
mir::BinOp::AddWithOverflow
@@ -70,9 +71,8 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
7071
if is_u64 && this.tcx.sess.target.arch != "x86_64" {
7172
return interp_ok(EmulateItemResult::NotSupported);
7273
}
73-
// TODO: How do we handle ExternAbi::Unadjusted??
7474
let [c_in, a, b, out] =
75-
this.check_shim(abi, ExternAbi::Unadjusted, link_name, args)?;
75+
this.check_shim(abi, Conv::C, link_name, args)?;
7676
let out = this.deref_pointer_as(
7777
out,
7878
if is_u64 { this.machine.layouts.u64 } else { this.machine.layouts.u32 },

src/tools/miri/src/shims/x86/sha.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//!
55
//! [RustCrypto's sha256 module]: https://github.com/RustCrypto/hashes/blob/6be8466247e936c415d8aafb848697f39894a386/sha2/src/sha256/soft.rs
66
7-
use rustc_abi::ExternAbi;
7+
use rustc_target::callconv::Conv;
88
use rustc_span::Symbol;
99
use rustc_target::callconv::FnAbi;
1010
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/x86/sse.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_apfloat::ieee::Single;
33
use rustc_span::Symbol;
44
use rustc_target::callconv::FnAbi;

src/tools/miri/src/shims/x86/sse2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_apfloat::ieee::Double;
33
use rustc_span::Symbol;
44
use rustc_target::callconv::FnAbi;

src/tools/miri/src/shims/x86/sse3.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_middle::mir;
33
use rustc_span::Symbol;
44
use rustc_target::callconv::FnAbi;

src/tools/miri/src/shims/x86/sse41.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_span::Symbol;
33
use rustc_target::callconv::FnAbi;
44
use rustc_middle::ty::Ty;

src/tools/miri/src/shims/x86/sse42.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
use rustc_abi::{ExternAbi, Size};
1+
use rustc_abi::Size;
22
use rustc_middle::mir;
33
use rustc_middle::ty::Ty;
44
use rustc_middle::ty::layout::LayoutOf as _;
55
use rustc_span::Symbol;
66
use rustc_target::callconv::FnAbi;
7+
use rustc_target::callconv::Conv;
78

89
use crate::*;
910

src/tools/miri/src/shims/x86/ssse3.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use rustc_abi::ExternAbi;
1+
use rustc_target::callconv::Conv;
22
use rustc_middle::mir;
33
use rustc_span::Symbol;
44
use rustc_target::callconv::FnAbi;

0 commit comments

Comments
 (0)