Fix ui-fulldep tests
This commit is contained in:
parent
618d4c3eeb
commit
85414ebea7
4 changed files with 17 additions and 22 deletions
|
@ -342,8 +342,9 @@ macro_rules! run_driver {
|
||||||
|
|
||||||
/// Runs the compiler against given target and tests it with `test_function`
|
/// Runs the compiler against given target and tests it with `test_function`
|
||||||
pub fn run(&mut self) -> Result<C, CompilerError<B>> {
|
pub fn run(&mut self) -> Result<C, CompilerError<B>> {
|
||||||
let compiler_result = rustc_driver::catch_fatal_errors(|| {
|
let compiler_result = rustc_driver::catch_fatal_errors(|| -> interface::Result::<()> {
|
||||||
RunCompiler::new(&self.args.clone(), self).run()
|
RunCompiler::new(&self.args.clone(), self).run();
|
||||||
|
Ok(())
|
||||||
});
|
});
|
||||||
match (compiler_result, self.result.take()) {
|
match (compiler_result, self.result.take()) {
|
||||||
(Ok(Ok(())), Some(ControlFlow::Continue(value))) => Ok(value),
|
(Ok(Ok(())), Some(ControlFlow::Continue(value))) => Ok(value),
|
||||||
|
|
|
@ -15,16 +15,16 @@ extern crate rustc_span;
|
||||||
extern crate rustc_symbol_mangling;
|
extern crate rustc_symbol_mangling;
|
||||||
extern crate rustc_target;
|
extern crate rustc_target;
|
||||||
|
|
||||||
|
use std::any::Any;
|
||||||
|
|
||||||
use rustc_codegen_ssa::traits::CodegenBackend;
|
use rustc_codegen_ssa::traits::CodegenBackend;
|
||||||
use rustc_codegen_ssa::{CodegenResults, CrateInfo};
|
use rustc_codegen_ssa::{CodegenResults, CrateInfo};
|
||||||
use rustc_data_structures::fx::FxIndexMap;
|
use rustc_data_structures::fx::FxIndexMap;
|
||||||
use rustc_errors::ErrorGuaranteed;
|
|
||||||
use rustc_metadata::EncodedMetadata;
|
use rustc_metadata::EncodedMetadata;
|
||||||
use rustc_middle::dep_graph::{WorkProduct, WorkProductId};
|
use rustc_middle::dep_graph::{WorkProduct, WorkProductId};
|
||||||
use rustc_middle::ty::TyCtxt;
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_session::config::OutputFilenames;
|
|
||||||
use rustc_session::Session;
|
use rustc_session::Session;
|
||||||
use std::any::Any;
|
use rustc_session::config::OutputFilenames;
|
||||||
|
|
||||||
struct TheBackend;
|
struct TheBackend;
|
||||||
|
|
||||||
|
@ -60,17 +60,12 @@ impl CodegenBackend for TheBackend {
|
||||||
(*codegen_results, FxIndexMap::default())
|
(*codegen_results, FxIndexMap::default())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn link(
|
fn link(&self, sess: &Session, codegen_results: CodegenResults, outputs: &OutputFilenames) {
|
||||||
&self,
|
|
||||||
sess: &Session,
|
|
||||||
codegen_results: CodegenResults,
|
|
||||||
outputs: &OutputFilenames,
|
|
||||||
) -> Result<(), ErrorGuaranteed> {
|
|
||||||
use rustc_session::{
|
|
||||||
config::{CrateType, OutFileName},
|
|
||||||
output::out_filename,
|
|
||||||
};
|
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
|
use rustc_session::config::{CrateType, OutFileName};
|
||||||
|
use rustc_session::output::out_filename;
|
||||||
|
|
||||||
let crate_name = codegen_results.crate_info.local_crate_name;
|
let crate_name = codegen_results.crate_info.local_crate_name;
|
||||||
for &crate_type in sess.opts.crate_types.iter() {
|
for &crate_type in sess.opts.crate_types.iter() {
|
||||||
if crate_type != CrateType::Rlib {
|
if crate_type != CrateType::Rlib {
|
||||||
|
@ -88,7 +83,6 @@ impl CodegenBackend for TheBackend {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,8 @@ fn main() {
|
||||||
rustc_args.push("-Zpolonius".to_owned());
|
rustc_args.push("-Zpolonius".to_owned());
|
||||||
let mut callbacks = CompilerCalls::default();
|
let mut callbacks = CompilerCalls::default();
|
||||||
// Call the Rust compiler with our callbacks.
|
// Call the Rust compiler with our callbacks.
|
||||||
rustc_driver::RunCompiler::new(&rustc_args, &mut callbacks).run()
|
rustc_driver::RunCompiler::new(&rustc_args, &mut callbacks).run();
|
||||||
|
Ok(())
|
||||||
});
|
});
|
||||||
std::process::exit(exit_code);
|
std::process::exit(exit_code);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,7 @@ extern crate rustc_span;
|
||||||
|
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
use rustc_interface::Linker;
|
use rustc_interface::{Linker, interface};
|
||||||
use rustc_interface::interface;
|
|
||||||
use rustc_session::config::{Input, Options, OutFileName, OutputType, OutputTypes};
|
use rustc_session::config::{Input, Options, OutFileName, OutputType, OutputTypes};
|
||||||
use rustc_span::FileName;
|
use rustc_span::FileName;
|
||||||
|
|
||||||
|
@ -79,11 +78,11 @@ fn compile(code: String, output: PathBuf, sysroot: PathBuf, linker: Option<&Path
|
||||||
|
|
||||||
interface::run_compiler(config, |compiler| {
|
interface::run_compiler(config, |compiler| {
|
||||||
let linker = compiler.enter(|queries| {
|
let linker = compiler.enter(|queries| {
|
||||||
queries.global_ctxt()?.enter(|tcx| {
|
queries.global_ctxt().enter(|tcx| {
|
||||||
tcx.analysis(())?;
|
let _ = tcx.analysis(());
|
||||||
Linker::codegen_and_build_linker(tcx, &*compiler.codegen_backend)
|
Linker::codegen_and_build_linker(tcx, &*compiler.codegen_backend)
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
linker.unwrap().link(&compiler.sess, &*compiler.codegen_backend).unwrap();
|
linker.link(&compiler.sess, &*compiler.codegen_backend);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue