diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2024-06-26 09:11:55 +0000 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2024-06-26 09:11:55 +0000 |
| commit | 8d119395890df789c72002a083fbe051ec05766c (patch) | |
| tree | f6478f414bd1f77e94bed793458d1d4beac38f1f | |
| parent | aa5d7a0d8ae4654c8739db1d7ac75dc0e6e24434 (diff) | |
| parent | f1052eb253580ce2adbcc7a24b15e291e4f0c760 (diff) | |
| download | rust-8d119395890df789c72002a083fbe051ec05766c.tar.gz rust-8d119395890df789c72002a083fbe051ec05766c.zip | |
Sync from rust fda509e817abeeecb5b76bc1de844f355675c81e
| -rw-r--r-- | src/base.rs | 21 | ||||
| -rw-r--r-- | src/concurrency_limiter.rs | 3 | ||||
| -rw-r--r-- | src/lib.rs | 6 |
3 files changed, 16 insertions, 14 deletions
diff --git a/src/base.rs b/src/base.rs index 9ccd92b51d8..6c7f75f41d5 100644 --- a/src/base.rs +++ b/src/base.rs @@ -677,22 +677,23 @@ fn codegen_stmt<'tcx>( CastKind::PointerCoercion(PointerCoercion::UnsafeFnPointer), ref operand, to_ty, - ) - | Rvalue::Cast( - CastKind::PointerCoercion(PointerCoercion::MutToConstPointer), - ref operand, - to_ty, - ) - | Rvalue::Cast( - CastKind::PointerCoercion(PointerCoercion::ArrayToPointer), - ref operand, - to_ty, ) => { let to_layout = fx.layout_of(fx.monomorphize(to_ty)); let operand = codegen_operand(fx, operand); lval.write_cvalue(fx, operand.cast_pointer_to(to_layout)); } Rvalue::Cast( + CastKind::PointerCoercion( + PointerCoercion::MutToConstPointer | PointerCoercion::ArrayToPointer, + ), + .., + ) => { + bug!( + "{:?} is for borrowck, and should never appear in codegen", + to_place_and_rval.1 + ); + } + Rvalue::Cast( CastKind::IntToInt | CastKind::FloatToFloat | CastKind::FloatToInt diff --git a/src/concurrency_limiter.rs b/src/concurrency_limiter.rs index a73860cf18b..2093b49ff31 100644 --- a/src/concurrency_limiter.rs +++ b/src/concurrency_limiter.rs @@ -1,6 +1,7 @@ use std::sync::{Arc, Condvar, Mutex}; use jobserver::HelperThread; +use rustc_errors::DiagCtxtHandle; use rustc_session::Session; // FIXME don't panic when a worker thread panics @@ -46,7 +47,7 @@ impl ConcurrencyLimiter { } } - pub(super) fn acquire(&self, dcx: &rustc_errors::DiagCtxt) -> ConcurrencyLimiterToken { + pub(super) fn acquire(&self, dcx: DiagCtxtHandle<'_>) -> ConcurrencyLimiterToken { let mut state = self.state.lock().unwrap(); loop { state.assert_invariants(); diff --git a/src/lib.rs b/src/lib.rs index 73764216c03..22c723e1a79 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -276,9 +276,9 @@ fn build_isa(sess: &Session, backend_config: &BackendConfig) -> Arc<dyn TargetIs flags_builder.set("enable_verifier", enable_verifier).unwrap(); flags_builder.set("regalloc_checker", enable_verifier).unwrap(); - let preserve_frame_pointer = sess.target.options.frame_pointer - != rustc_target::spec::FramePointer::MayOmit - || matches!(sess.opts.cg.force_frame_pointers, Some(true)); + let mut frame_ptr = sess.target.options.frame_pointer.clone(); + frame_ptr.ratchet(sess.opts.cg.force_frame_pointers); + let preserve_frame_pointer = frame_ptr != rustc_target::spec::FramePointer::MayOmit; flags_builder .set("preserve_frame_pointers", if preserve_frame_pointer { "true" } else { "false" }) .unwrap(); |
