diff options
Diffstat (limited to 'src/test/run-make-fulldeps/issue-19371')
-rw-r--r-- | src/test/run-make-fulldeps/issue-19371/Makefile | 9 | ||||
-rw-r--r-- | src/test/run-make-fulldeps/issue-19371/foo.rs | 74 |
2 files changed, 0 insertions, 83 deletions
diff --git a/src/test/run-make-fulldeps/issue-19371/Makefile b/src/test/run-make-fulldeps/issue-19371/Makefile deleted file mode 100644 index 994e50801..000000000 --- a/src/test/run-make-fulldeps/issue-19371/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -include ../tools.mk - -# This test ensures that rustc compile_input can be called twice in one task -# without causing a panic. -# The program needs the path to rustc to get sysroot. - -all: - $(RUSTC) foo.rs - $(call RUN,foo $(TMPDIR) $(RUSTC)) diff --git a/src/test/run-make-fulldeps/issue-19371/foo.rs b/src/test/run-make-fulldeps/issue-19371/foo.rs deleted file mode 100644 index 7e1b6aeb3..000000000 --- a/src/test/run-make-fulldeps/issue-19371/foo.rs +++ /dev/null @@ -1,74 +0,0 @@ -#![feature(rustc_private)] - -extern crate rustc_interface; -extern crate rustc_driver; -extern crate rustc_session; -extern crate rustc_span; - -use rustc_session::config::{Input, Options, OutputType, OutputTypes}; -use rustc_interface::interface; -use rustc_span::source_map::FileName; - -use std::path::PathBuf; - -fn main() { - let src = r#" - fn main() {} - "#; - - let args: Vec<String> = std::env::args().collect(); - - if args.len() < 4 { - panic!("expected rustc path"); - } - - let tmpdir = PathBuf::from(&args[1]); - - let mut sysroot = PathBuf::from(&args[3]); - sysroot.pop(); - sysroot.pop(); - - compile(src.to_string(), tmpdir.join("out"), sysroot.clone()); - - compile(src.to_string(), tmpdir.join("out"), sysroot.clone()); -} - -fn compile(code: String, output: PathBuf, sysroot: PathBuf) { - let mut opts = Options::default(); - opts.output_types = OutputTypes::new(&[(OutputType::Exe, None)]); - opts.maybe_sysroot = Some(sysroot); - - if let Ok(linker) = std::env::var("RUSTC_LINKER") { - opts.cg.linker = Some(linker.into()); - } - - let name = FileName::anon_source_code(&code); - let input = Input::Str { name, input: code }; - - let config = interface::Config { - opts, - crate_cfg: Default::default(), - crate_check_cfg: Default::default(), - input, - input_path: None, - output_file: Some(output), - output_dir: None, - file_loader: None, - lint_caps: Default::default(), - parse_sess_created: None, - register_lints: None, - override_queries: None, - make_codegen_backend: None, - registry: rustc_driver::diagnostics_registry(), - }; - - interface::run_compiler(config, |compiler| { - // This runs all the passes prior to linking, too. - let linker = compiler.enter(|queries| { - queries.linker() - }); - if let Ok(linker) = linker { - linker.link(); - } - }); -} |