diff options
| author | bors <bors@rust-lang.org> | 2020-02-04 05:48:54 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-02-04 05:48:54 +0000 |
| commit | fc07615c49259b16e1d1789e23050e71b744c652 (patch) | |
| tree | b0ce92ca0e2ec863a00a23c6624094a8cdd27de9 /src/librustc_interface | |
| parent | 42a0bd2091b9ca8fe5059fd5f4a26279a388f278 (diff) | |
| parent | ae51d2ba32a3dfa3811ee19164ef789eb734a38b (diff) | |
Auto merge of #68601 - 0dvictor:split, r=tmandry
Split `join_codegen_and_link()` into two steps `join_codegen_and_link()` is split to `join_codegen()` and `link()`.
Diffstat (limited to 'src/librustc_interface')
| -rw-r--r-- | src/librustc_interface/queries.rs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/librustc_interface/queries.rs b/src/librustc_interface/queries.rs index 0af9b17a299..2ac2845be91 100644 --- a/src/librustc_interface/queries.rs +++ b/src/librustc_interface/queries.rs @@ -310,19 +310,22 @@ pub struct Linker { impl Linker { pub fn link(self) -> Result<()> { - let r = self - .codegen_backend - .join_codegen_and_link( - self.ongoing_codegen, - &self.sess, - &self.dep_graph, - &self.prepare_outputs, - ) - .map_err(|_| ErrorReported); + let codegen_results = + self.codegen_backend.join_codegen(self.ongoing_codegen, &self.sess, &self.dep_graph)?; let prof = self.sess.prof.clone(); let dep_graph = self.dep_graph; prof.generic_activity("drop_dep_graph").run(move || drop(dep_graph)); - r + + if !self + .sess + .opts + .output_types + .keys() + .any(|&i| i == OutputType::Exe || i == OutputType::Metadata) + { + return Ok(()); + } + self.codegen_backend.link(&self.sess, codegen_results, &self.prepare_outputs) } } |
