From 7f9f044d72f6b53a42cd101bc7f17c924ede6794 Mon Sep 17 00:00:00 2001
From: David Tolnay <dtolnay@gmail.com>
Date: Mon, 14 Oct 2024 10:18:24 -0700
Subject: [PATCH] Invoke the rust compiler for the appropriate tool chain

---
 checker/src/cargo_mirai.rs | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/checker/src/cargo_mirai.rs b/checker/src/cargo_mirai.rs
index 901370de..40bce5e8 100644
--- a/checker/src/cargo_mirai.rs
+++ b/checker/src/cargo_mirai.rs
@@ -224,10 +224,14 @@ fn call_mirai() {
 }
 
 fn call_rustc() {
-    // todo: invoke the rust compiler for the appropriate tool chain?
-    let mut cmd =
-        Command::new(std::env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc")));
-    cmd.args(std::env::args().skip(2));
+    let mut args = std::env::args_os().skip(1);
+    // The rustc to use is passed by Cargo as the first argument to RUSTC_WRAPPER
+    let mut cmd = Command::new(
+        args.next()
+            .or_else(|| std::env::var_os("RUSTC"))
+            .unwrap_or_else(|| OsString::from("rustc")),
+    );
+    cmd.args(args);
     let exit_status = cmd
         .spawn()
         .expect("could not run rustc")