summaryrefslogtreecommitdiff
path: root/dev-lang/rust/files/1.61.0-miri-cow.patch
blob: fc469731e4f796a25a5b3ce04a32af9b72cb5a2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
From 830cc58f8a10598f4caa337ca97be51741945499 Mon Sep 17 00:00:00 2001
From: Ralf Jung <post@ralfj.de>
Date: Sun, 3 Apr 2022 20:00:03 -0400
Subject: [PATCH] rustup

gyakovlev: changed paths and removed irrelevant bits
---
 rust-version                     | 2 +-
 src/helpers.rs                   | 4 ++--
 src/machine.rs                   | 2 +-
 src/shims/env.rs                 | 2 +-
 src/shims/foreign_items.rs       | 4 ++--
 src/shims/posix/foreign_items.rs | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/helpers.rs b/src/helpers.rs
index 3ffb983aa..7a63bb03d 100644
--- a/src/tools/miri/src/helpers.rs
+++ b/src/tools/miri/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 e9ed50724..b4b07a61a 100644
--- a/src/tools/miri/src/machine.rs
+++ b/src/tools/miri/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 c2050647a..822bef56c 100644
--- a/src/tools/miri/src/shims/env.rs
+++ b/src/src/tools/miri/shims/env.rs
@@ -41,7 +41,7 @@ impl<'tcx> EnvVars<'tcx> {
         mut excluded_env_vars: Vec<String>,
         forwarded_env_vars: Vec<String>,
     ) -> 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 ecffd310d..d9e4d9382 100644
--- a/src/tools/miri/src/shims/foreign_items.rs
+++ b/src/tools/miri/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 02fb7089c..36bf53059 100644
--- a/src/tools/miri/src/shims/posix/foreign_items.rs
+++ b/src/tools/miri/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!(),