diff options
| author | bors <bors@rust-lang.org> | 2024-02-07 19:40:25 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-02-07 19:40:25 +0000 |
| commit | 8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6 (patch) | |
| tree | 166df9c239ad5725751614bbb9773b53f23ab01d /compiler/rustc_driver_impl/src/lib.rs | |
| parent | cfb42e5d7f6d5fc39f532ec251e1cea4bbafc746 (diff) | |
| parent | b715d9303e77dfae291c7d651c8e65f8eec94b93 (diff) | |
| download | rust-8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6.tar.gz rust-8ace7ea1f7cbba7b4f031e66c54ca237a0d65de6.zip | |
Auto merge of #120748 - Nadrieril:rollup-dj0qwv5, r=Nadrieril
Rollup of 13 pull requests Successful merges: - #110482 (Add armv8r-none-eabihf target for the Cortex-R52.) - #119162 (Add unstable `-Z direct-access-external-data` cmdline flag for `rustc`) - #120302 (various const interning cleanups) - #120455 ( Add FileCheck annotations to MIR-opt SROA tests) - #120470 (Mark "unused binding" suggestion as maybe incorrect) - #120479 (Suggest turning `if let` into irrefutable `let` if appropriate) - #120564 (coverage: Split out counter increment sites from BCB node/edge counters) - #120633 (pattern_analysis: gather up place-relevant info) - #120664 (Add parallel rustc ui tests) - #120726 (Don't use bashism in checktools.sh) - #120733 (MirPass: make name more const) - #120735 (Remove some `unchecked_claim_error_was_emitted` calls) - #120746 (Record coroutine kind in coroutine generics) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_driver_impl/src/lib.rs')
| -rw-r--r-- | compiler/rustc_driver_impl/src/lib.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/compiler/rustc_driver_impl/src/lib.rs b/compiler/rustc_driver_impl/src/lib.rs index 5903c43ae98..519bde98820 100644 --- a/compiler/rustc_driver_impl/src/lib.rs +++ b/compiler/rustc_driver_impl/src/lib.rs @@ -24,7 +24,9 @@ use rustc_data_structures::profiling::{ get_resident_set_size, print_time_passes_entry, TimePassesFormat, }; use rustc_errors::registry::Registry; -use rustc_errors::{markdown, ColorConfig, DiagCtxt, ErrCode, ErrorGuaranteed, PResult}; +use rustc_errors::{ + markdown, ColorConfig, DiagCtxt, ErrCode, ErrorGuaranteed, FatalError, PResult, +}; use rustc_feature::find_gated_cfg; use rustc_interface::util::{self, collect_crate_types, get_codegen_backend}; use rustc_interface::{interface, Queries}; @@ -1231,11 +1233,10 @@ fn parse_crate_attrs<'a>(sess: &'a Session) -> PResult<'a, ast::AttrVec> { /// The compiler currently unwinds with a special sentinel value to abort /// compilation on fatal errors. This function catches that sentinel and turns /// the panic into a `Result` instead. -pub fn catch_fatal_errors<F: FnOnce() -> R, R>(f: F) -> Result<R, ErrorGuaranteed> { +pub fn catch_fatal_errors<F: FnOnce() -> R, R>(f: F) -> Result<R, FatalError> { catch_unwind(panic::AssertUnwindSafe(f)).map_err(|value| { if value.is::<rustc_errors::FatalErrorMarker>() { - #[allow(deprecated)] - ErrorGuaranteed::unchecked_claim_error_was_emitted() + FatalError } else { panic::resume_unwind(value); } @@ -1245,9 +1246,9 @@ pub fn catch_fatal_errors<F: FnOnce() -> R, R>(f: F) -> Result<R, ErrorGuarantee /// Variant of `catch_fatal_errors` for the `interface::Result` return type /// that also computes the exit code. pub fn catch_with_exit_code(f: impl FnOnce() -> interface::Result<()>) -> i32 { - match catch_fatal_errors(f).flatten() { - Ok(()) => EXIT_SUCCESS, - Err(_) => EXIT_FAILURE, + match catch_fatal_errors(f) { + Ok(Ok(())) => EXIT_SUCCESS, + _ => EXIT_FAILURE, } } |
