diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2024-06-21 20:19:16 +0000 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2024-06-22 15:44:36 +0000 |
| commit | d8c9dd4172ce23e8e8bfbdc8323af908745ed16e (patch) | |
| tree | 816cd818b923343fef29f4d025f1675b4087b313 | |
| parent | e2aadc296d20b2a372984cf32e1e0b7d1121b71f (diff) | |
| download | rust-d8c9dd4172ce23e8e8bfbdc8323af908745ed16e.tar.gz rust-d8c9dd4172ce23e8e8bfbdc8323af908745ed16e.zip | |
Move has_errors_or_delayed_bugs check into start_codegen
| -rw-r--r-- | compiler/rustc_interface/src/passes.rs | 11 | ||||
| -rw-r--r-- | compiler/rustc_interface/src/queries.rs | 9 |
2 files changed, 10 insertions, 10 deletions
diff --git a/compiler/rustc_interface/src/passes.rs b/compiler/rustc_interface/src/passes.rs index 74a2255d67c..dbf954b8f43 100644 --- a/compiler/rustc_interface/src/passes.rs +++ b/compiler/rustc_interface/src/passes.rs @@ -1008,7 +1008,14 @@ fn check_for_rustc_errors_attr(tcx: TyCtxt<'_>) { pub(crate) fn start_codegen<'tcx>( codegen_backend: &dyn CodegenBackend, tcx: TyCtxt<'tcx>, -) -> Box<dyn Any> { +) -> Result<Box<dyn Any>> { + // Don't do code generation if there were any errors. Likewise if + // there were any delayed bugs, because codegen will likely cause + // more ICEs, obscuring the original problem. + if let Some(guar) = tcx.sess.dcx().has_errors_or_delayed_bugs() { + return Err(guar); + } + // Hook for UI tests. check_for_rustc_errors_attr(tcx); @@ -1034,7 +1041,7 @@ pub(crate) fn start_codegen<'tcx>( } } - codegen + Ok(codegen) } fn get_recursion_limit(krate_attrs: &[ast::Attribute], sess: &Session) -> Limit { diff --git a/compiler/rustc_interface/src/queries.rs b/compiler/rustc_interface/src/queries.rs index 5138e145051..68710df8516 100644 --- a/compiler/rustc_interface/src/queries.rs +++ b/compiler/rustc_interface/src/queries.rs @@ -126,14 +126,7 @@ impl<'tcx> Queries<'tcx> { pub fn codegen_and_build_linker(&'tcx self) -> Result<Linker> { self.global_ctxt()?.enter(|tcx| { - // Don't do code generation if there were any errors. Likewise if - // there were any delayed bugs, because codegen will likely cause - // more ICEs, obscuring the original problem. - if let Some(guar) = self.compiler.sess.dcx().has_errors_or_delayed_bugs() { - return Err(guar); - } - - let ongoing_codegen = passes::start_codegen(&*self.compiler.codegen_backend, tcx); + let ongoing_codegen = passes::start_codegen(&*self.compiler.codegen_backend, tcx)?; Ok(Linker { dep_graph: tcx.dep_graph.clone(), |
