1
Fork 0

Fix ui-fulldep tests

This commit is contained in:
bjorn3 2024-11-28 16:40:42 +00:00
parent 618d4c3eeb
commit 85414ebea7
4 changed files with 17 additions and 22 deletions

View file

@ -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),

View file

@ -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(())
} }
} }

View file

@ -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);
} }

View file

@ -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);
}); });
} }