]> git.lizzy.rs Git - rust.git/blobdiff - src/bin/miri.rs
rustup for more LocalDefId changes
[rust.git] / src / bin / miri.rs
index 14d78053c0fd675ac072e6037fb32f867c001eea..06101fe24e2d8256d541790b71599ab1c2542099 100644 (file)
@@ -39,7 +39,7 @@ fn after_analysis<'tcx>(
             // Add filename to `miri` arguments.
             config.args.insert(0, compiler.input().filestem().to_string());
 
-            if let Some(return_code) = miri::eval_main(tcx, entry_def_id, config) {
+            if let Some(return_code) = miri::eval_main(tcx, entry_def_id.to_def_id(), config) {
                 std::process::exit(
                     i32::try_from(return_code).expect("Return value was too large!"),
                 );
@@ -128,6 +128,7 @@ fn main() {
     // Parse our arguments and split them across `rustc` and `miri`.
     let mut validate = true;
     let mut stacked_borrows = true;
+    let mut check_alignment = true;
     let mut communicate = false;
     let mut ignore_leaks = false;
     let mut seed: Option<u64> = None;
@@ -152,6 +153,9 @@ fn main() {
                 "-Zmiri-disable-stacked-borrows" => {
                     stacked_borrows = false;
                 }
+                "-Zmiri-disable-alignment-check" => {
+                    check_alignment = false;
+                }
                 "-Zmiri-disable-isolation" => {
                     communicate = true;
                 }
@@ -243,6 +247,7 @@ fn main() {
     let miri_config = miri::MiriConfig {
         validate,
         stacked_borrows,
+        check_alignment,
         communicate,
         ignore_leaks,
         excluded_env_vars,
@@ -254,6 +259,11 @@ fn main() {
     rustc_driver::install_ice_hook();
     let result = rustc_driver::catch_fatal_errors(move || {
         rustc_driver::run_compiler(&rustc_args, &mut MiriCompilerCalls { miri_config }, None, None)
-    });
-    std::process::exit(result.is_err() as i32);
+    })
+    .and_then(|result| result);
+    let exit_code = match result {
+        Ok(()) => rustc_driver::EXIT_SUCCESS,
+        Err(_) => rustc_driver::EXIT_FAILURE,
+    };
+    std::process::exit(exit_code);
 }