diff --git a/rust-version b/rust-version index 38c99cc0b5..8e4cdeddfc 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -297a8018b525c28ef10ee6a91d61954839b508b9 +6af09d2505f38e4f1df291df56d497fb2ad935ed diff --git a/src/helpers.rs b/src/helpers.rs index 3ffb983aa6..7a63bb03df 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -510,7 +510,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx let this = self.eval_context_mut(); let target = &this.tcx.sess.target; let target_os = &target.os; - let last_error = if target.families.contains(&"unix".to_owned()) { + let last_error = if target.families.iter().any(|f| f == "unix") { this.eval_libc(match err_kind { ConnectionRefused => "ECONNREFUSED", ConnectionReset => "ECONNRESET", @@ -534,7 +534,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx ) } })? - } else if target.families.contains(&"windows".to_owned()) { + } else if target.families.iter().any(|f| f == "windows") { // FIXME: we have to finish implementing the Windows equivalent of this. this.eval_windows( "c", diff --git a/src/machine.rs b/src/machine.rs index e9ed507244..b4b07a61a8 100644 --- a/src/machine.rs +++ b/src/machine.rs @@ -227,7 +227,7 @@ impl MemoryExtra { pub fn init_extern_statics<'tcx, 'mir>( this: &mut MiriEvalContext<'mir, 'tcx>, ) -> InterpResult<'tcx> { - match this.tcx.sess.target.os.as_str() { + match this.tcx.sess.target.os.as_ref() { "linux" => { // "environ" Self::add_extern_static( diff --git a/src/shims/env.rs b/src/shims/env.rs index c2050647ab..822bef56ce 100644 --- a/src/shims/env.rs +++ b/src/shims/env.rs @@ -41,7 +41,7 @@ impl<'tcx> EnvVars<'tcx> { mut excluded_env_vars: Vec, forwarded_env_vars: Vec, ) -> InterpResult<'tcx> { - let target_os = ecx.tcx.sess.target.os.as_str(); + let target_os = ecx.tcx.sess.target.os.as_ref(); // HACK: Exclude `TERM` var to avoid terminfo trying to open the termcap file. // This is (a) very slow and (b) does not work on Windows. excluded_env_vars.push("TERM".to_owned()); diff --git a/src/shims/foreign_items.rs b/src/shims/foreign_items.rs index ecffd310de..d9e4d93822 100644 --- a/src/shims/foreign_items.rs +++ b/src/shims/foreign_items.rs @@ -46,7 +46,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx fn min_align(&self, size: u64, kind: MiriMemoryKind) -> Align { let this = self.eval_context_ref(); // List taken from `libstd/sys_common/alloc.rs`. - let min_align = match this.tcx.sess.target.arch.as_str() { + let min_align = match this.tcx.sess.target.arch.as_ref() { "x86" | "arm" | "mips" | "powerpc" | "powerpc64" | "asmjs" | "wasm32" => 8, "x86_64" | "aarch64" | "mips64" | "s390x" | "sparc64" => 16, arch => bug!("Unsupported target architecture: {}", arch), @@ -695,7 +695,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx } // Platform-specific shims - _ => match this.tcx.sess.target.os.as_str() { + _ => match this.tcx.sess.target.os.as_ref() { "linux" | "macos" => return shims::posix::foreign_items::EvalContextExt::emulate_foreign_item_by_name(this, link_name, abi, args, dest, ret), "windows" => return shims::windows::foreign_items::EvalContextExt::emulate_foreign_item_by_name(this, link_name, abi, args, dest, ret), target => throw_unsup_format!("the target `{}` is not supported", target), diff --git a/src/shims/posix/foreign_items.rs b/src/shims/posix/foreign_items.rs index 02fb7089c3..36bf530599 100644 --- a/src/shims/posix/foreign_items.rs +++ b/src/shims/posix/foreign_items.rs @@ -462,7 +462,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx // Platform-specific shims _ => { - match this.tcx.sess.target.os.as_str() { + match this.tcx.sess.target.os.as_ref() { "linux" => return shims::posix::linux::foreign_items::EvalContextExt::emulate_foreign_item_by_name(this, link_name, abi, args, dest, ret), "macos" => return shims::posix::macos::foreign_items::EvalContextExt::emulate_foreign_item_by_name(this, link_name, abi, args, dest, ret), _ => unreachable!(),