about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstd/sys/unix/args.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libstd/sys/unix/args.rs b/src/libstd/sys/unix/args.rs
index 15dafb1bcf9..2ed1585395e 100644
--- a/src/libstd/sys/unix/args.rs
+++ b/src/libstd/sys/unix/args.rs
@@ -80,7 +80,13 @@ mod imp {
 
     #[inline(always)]
     pub unsafe fn init(_argc: isize, _argv: *const *const u8) {
-        #[cfg(not(all(target_os = "linux", target_env = "gnu")))]
+        // On Linux-GNU, we rely on `ARGV_INIT_ARRAY` below to initialize
+        // `ARGC` and `ARGV`. But in Miri that does not actually happen so we
+        // still initialize here.
+        #[cfg(any(
+            miri,
+            not(all(target_os = "linux", target_env = "gnu"))
+        ))]
         really_init(_argc, _argv);
     }