]> git.lizzy.rs Git - rust.git/blobdiff - src/bin/miri.rs
Update for changes in rustc.
[rust.git] / src / bin / miri.rs
index 14a947302c65e0e3eb528c7ade72011a8dcb2a2d..728266a755d64c998040ca9b9ffece70d24b0bc5 100644 (file)
@@ -33,8 +33,9 @@ fn build_controller(
 
             let tcx = state.tcx.unwrap();
             let mir_map = state.mir_map.unwrap();
-            let (node_id, _) = state.session.entry_fn.borrow()
+            let (entry_node_id, _) = state.session.entry_fn.borrow()
                 .expect("no main or start function found");
+            let entry_def_id = tcx.map.local_def_id(entry_node_id);
 
             let krate = state.hir_crate.as_ref().unwrap();
             let mut memory_size = 100*1024*1024; // 100MB
@@ -66,9 +67,12 @@ fn extract_str(lit: &syntax::ast::Lit) -> syntax::parse::token::InternedString {
                 }
             }
 
-            let mut mir_map = MirMap { map: mir_map.map.clone() };
-            run_mir_passes(tcx, &mut mir_map);
-            eval_main(tcx, &mir_map, node_id, memory_size, step_limit, stack_limit);
+            let mut mir_map_copy = MirMap::new(tcx.dep_graph.clone());
+            for def_id in mir_map.map.keys() {
+                mir_map_copy.map.insert(def_id, mir_map.map.get(&def_id).unwrap().clone());
+            }
+            run_mir_passes(tcx, &mut mir_map_copy);
+            eval_main(tcx, &mir_map_copy, entry_def_id, memory_size, step_limit, stack_limit);
 
             state.session.abort_if_errors();
         });