rust/compiler/rustc_mir_transform/src
Tomasz Miąsko 5161b22143 Fix coroutine validation for mixed panic strategy
Validation introduced in #113124 allows UnwindAction::Continue and
TerminatorKind::Resume to occur only in functions with ABI that can
unwind. The function ABI depends on the panic strategy, which can vary
across crates.

Usually MIR is built and validated in the same crate. The coroutine drop
glue thus far was an exception. As a result validation could fail when
mixing different panic strategies.

Avoid the problem by executing AbortUnwindingCalls along with the
validation.
2023-11-28 21:11:24 +01:00
..
coverage coverage: Assert that bcb0 starts with bb0 and has no in-edges 2023-11-25 12:29:21 +11:00
inline subst -> instantiate 2023-09-26 09:37:55 +02:00
abort_unwinding_calls.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
add_call_guards.rs when terminating during unwinding, show the reason why 2023-08-24 13:28:26 +02:00
add_moves_for_packed_drops.rs Remove DesugaringKind::Replace. 2023-05-25 17:40:46 +00:00
add_retag.rs cleanup misinformation regarding has_deref 2023-08-06 17:29:09 +03:00
add_subtyping_projections.rs move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
check_alignment.rs Check alignment of pointers only when read/written through 2023-11-04 13:01:32 -04:00
check_const_item_mutation.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
check_packed_ref.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
check_unsafety.rs Address unused tuple struct fields in the compiler 2023-11-27 13:54:50 -05:00
cleanup_post_borrowck.rs rename BorrowKind::Shallow to Fake 2023-11-08 22:55:28 +01:00
const_debuginfo.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
const_goto.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
const_prop_lint.rs merge DefKind::Coroutine into DefKind::Closure 2023-11-26 21:05:08 +08:00
const_prop.rs merge DefKind::Coroutine into DefKind::Closure 2023-11-26 21:05:08 +08:00
copy_prop.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
coroutine.rs Fix coroutine validation for mixed panic strategy 2023-11-28 21:11:24 +01:00
cost_checker.rs Re-format code with new rustfmt 2023-11-15 21:45:48 -05:00
cross_crate_inline.rs Add -Zcross-crate-inline-threshold=yes 2023-11-07 18:45:11 -05:00
ctfe_limit.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
dataflow_const_prop.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
dead_store_elimination.rs Preserve DebugInfo in DeadStoreElimination. 2023-10-06 15:46:11 +00:00
deduce_param_attrs.rs deduce_param_attrs: explain a read-only case 2023-10-30 10:29:08 +01:00
deduplicate_blocks.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
deref_separator.rs Remove mir::LocalDecl::internal. 2023-10-04 17:55:15 +00:00
dest_prop.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
dump_mir.rs Write to stdout if - is given as output file 2023-06-06 17:53:29 -04:00
early_otherwise_branch.rs add some comments explaining why MIR opts are marked as unsound 2023-10-10 11:17:27 +02:00
elaborate_box_derefs.rs Remove mir::LocalDecl::internal. 2023-10-04 17:55:15 +00:00
elaborate_drops.rs Remove unused arguments from on_all_children_bits. 2023-11-24 06:36:27 +11:00
errors.rs Do not construct def_path_str for MustNotSuspend. 2023-09-23 13:14:57 +00:00
ffi_unwind_calls.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
function_item_references.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
gvn.rs Begin nightly-ifying rustc_type_ir 2023-11-18 00:20:00 +00:00
inline.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
instsimplify.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
jump_threading.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
large_enums.rs add some comments explaining why MIR opts are marked as unsound 2023-10-10 11:17:27 +02:00
lib.rs merge DefKind::Coroutine into DefKind::Closure 2023-11-26 21:05:08 +08:00
lower_intrinsics.rs Remove option_payload_ptr; redundant to offset_of 2023-11-16 22:56:25 +00:00
lower_slice_len.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
match_branches.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
multiple_return_terminators.rs Remove unused TyCtxt from remove_dead_blocks 2023-10-18 23:42:45 +11:00
normalize_array_len.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
nrvo.rs add some comments explaining why MIR opts are marked as unsound 2023-10-10 11:17:27 +02:00
pass_manager.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
prettify.rs make reorder BB pass use cached RPO 2023-06-14 20:08:04 +00:00
ref_prop.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
remove_noop_landing_pads.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
remove_place_mention.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
remove_storage_markers.rs Make MIR basic blocks field public 2022-07-07 08:11:49 +02:00
remove_uninit_drops.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
remove_unneeded_drops.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
remove_zsts.rs Remove incorrect transformation from RemoveZsts 2023-11-11 01:51:09 +01:00
required_consts.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
reveal_all.rs move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
separate_const_switch.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
shim.rs Fix coroutine validation for mixed panic strategy 2023-11-28 21:11:24 +01:00
simplify_branches.rs Simplify assume of a constant. 2023-10-31 11:44:23 +00:00
simplify_comparison_integral.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
simplify.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
sroa.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
ssa.rs Fix def-use check for call terminators 2023-11-14 17:07:34 +01:00
uninhabited_enum_branching.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
unreachable_prop.rs Only emit != assumptions if the otherwise target is reachable. 2023-10-31 11:44:23 +00:00