summaryrefslogtreecommitdiffstats
path: root/src/test/run-make-fulldeps/hotplug_codegen_backend/the_backend.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/run-make-fulldeps/hotplug_codegen_backend/the_backend.rs')
-rw-r--r--src/test/run-make-fulldeps/hotplug_codegen_backend/the_backend.rs82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/test/run-make-fulldeps/hotplug_codegen_backend/the_backend.rs b/src/test/run-make-fulldeps/hotplug_codegen_backend/the_backend.rs
deleted file mode 100644
index 3aa57d589..000000000
--- a/src/test/run-make-fulldeps/hotplug_codegen_backend/the_backend.rs
+++ /dev/null
@@ -1,82 +0,0 @@
-#![feature(rustc_private)]
-#![deny(warnings)]
-
-extern crate rustc_codegen_ssa;
-extern crate rustc_data_structures;
-extern crate rustc_driver;
-extern crate rustc_errors;
-extern crate rustc_hir;
-extern crate rustc_metadata;
-extern crate rustc_middle;
-extern crate rustc_session;
-extern crate rustc_span;
-extern crate rustc_symbol_mangling;
-extern crate rustc_target;
-
-use rustc_codegen_ssa::traits::CodegenBackend;
-use rustc_codegen_ssa::{CodegenResults, CrateInfo};
-use rustc_data_structures::fx::FxHashMap;
-use rustc_errors::ErrorGuaranteed;
-use rustc_metadata::EncodedMetadata;
-use rustc_middle::dep_graph::{WorkProduct, WorkProductId};
-use rustc_middle::ty::TyCtxt;
-use rustc_session::config::OutputFilenames;
-use rustc_session::Session;
-use std::any::Any;
-
-struct TheBackend;
-
-impl CodegenBackend for TheBackend {
- fn codegen_crate<'a, 'tcx>(
- &self,
- tcx: TyCtxt<'tcx>,
- metadata: EncodedMetadata,
- _need_metadata_module: bool,
- ) -> Box<dyn Any> {
- Box::new(CodegenResults {
- modules: vec![],
- allocator_module: None,
- metadata_module: None,
- metadata,
- crate_info: CrateInfo::new(tcx, "fake_target_cpu".to_string()),
- })
- }
-
- fn join_codegen(
- &self,
- ongoing_codegen: Box<dyn Any>,
- _sess: &Session,
- _outputs: &OutputFilenames,
- ) -> Result<(CodegenResults, FxHashMap<WorkProductId, WorkProduct>), ErrorGuaranteed> {
- let codegen_results = ongoing_codegen
- .downcast::<CodegenResults>()
- .expect("in join_codegen: ongoing_codegen is not a CodegenResults");
- Ok((*codegen_results, FxHashMap::default()))
- }
-
- fn link(
- &self,
- sess: &Session,
- codegen_results: CodegenResults,
- outputs: &OutputFilenames,
- ) -> Result<(), ErrorGuaranteed> {
- use rustc_session::{config::CrateType, output::out_filename};
- use std::io::Write;
- let crate_name = codegen_results.crate_info.local_crate_name;
- for &crate_type in sess.opts.crate_types.iter() {
- if crate_type != CrateType::Rlib {
- sess.fatal(&format!("Crate type is {:?}", crate_type));
- }
- let output_name = out_filename(sess, crate_type, &outputs, crate_name);
- let mut out_file = ::std::fs::File::create(output_name).unwrap();
- write!(out_file, "This has been \"compiled\" successfully.").unwrap();
- }
- Ok(())
- }
-}
-
-/// This is the entrypoint for a hot plugged rustc_codegen_llvm
-#[no_mangle]
-pub fn __rustc_codegen_backend() -> Box<dyn CodegenBackend> {
- Box::new(TheBackend)
-}