rust/compiler/rustc_mir_transform/src
Matthias Krüger ddda937701
Rollup merge of #143273 - 1c3t3a:enum-check-negative, r=SparrowLii
Make the enum check work for negative discriminants

The discriminant check was not working correctly for negative numbers. This change fixes that by masking out the relevant bits correctly.

Fixes rust-lang/rust#143218.
2025-07-03 05:21:32 +02:00
..
coroutine Feed explicit_predicates_of instead of predicates_of 2025-07-01 00:01:40 +00:00
coverage mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
inline Only store the LocalDefId instead of the whole instance. 2025-06-23 08:44:31 +00:00
shim mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
abort_unwinding_calls.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
add_call_guards.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
add_moves_for_packed_drops.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
add_retag.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
add_subtyping_projections.rs Remove some unnecessary erases 2025-05-08 16:20:57 +00:00
check_alignment.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
check_call_recursion.rs Use is_lang_item and as_lang_item instead of handrolling their logic 2025-04-22 11:02:37 +00:00
check_const_item_mutation.rs Only look at trait impls in the current crate when looking for Drop impls 2025-04-02 07:30:11 +00:00
check_enums.rs Make the enum check work for negative discriminants 2025-07-02 20:02:27 +03:00
check_inline.rs don't depend on rustc_attr_parsing if rustc_data_structures will do 2025-05-09 23:16:55 +02:00
check_null.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
check_packed_ref.rs use TypingEnv when no infcx is available 2024-11-18 10:38:56 +01:00
check_pointers.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
cleanup_post_borrowck.rs Visit place in BackwardIncompatibleDropHint statement 2025-04-13 22:01:54 +00:00
copy_prop.rs Leave from CopyProp early when there are no replacements 2025-06-22 14:30:23 +02:00
coroutine.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
cost_checker.rs Allow more top-down inlining for single-BB callees 2025-03-12 22:39:43 -07:00
cross_crate_inline.rs Add -Z hint-mostly-unused to tell rustc that most of a crate will go unused 2025-06-06 19:12:00 -07:00
ctfe_limit.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
dataflow_const_prop.rs Add InterpCx::layout_of with tracing, shadowing LayoutOf 2025-06-27 11:49:22 +02:00
dead_store_elimination.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
deduce_param_attrs.rs Remove obsolete comment from DeduceReadOnly 2025-03-04 12:26:01 +01:00
deref_separator.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
dest_prop.rs Separate Analysis and Results. 2025-04-24 11:36:07 +10:00
dump_mir.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
early_otherwise_branch.rs mir-opt: Do not create storage marks for temporary locals 2025-05-24 15:36:06 +08:00
elaborate_box_derefs.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
elaborate_drop.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
elaborate_drops.rs AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07:00
errors.rs Make UNNECESSARY_TRANSMUTES into a HIR lint 2025-05-25 15:57:48 +00:00
ffi_unwind_calls.rs compiler: use is_rustic_abi in mir_transform 2025-03-04 18:21:56 -08:00
function_item_references.rs Rename ClearCrossCrate::assert_crate_local. 2025-02-21 07:12:13 +11:00
gvn.rs give Pointer::into_parts a more scary name and offer a safer alternative 2025-06-29 00:16:19 +02:00
impossible_predicates.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
inline.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
instsimplify.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
jump_threading.rs Add InterpCx::layout_of with tracing, shadowing LayoutOf 2025-06-27 11:49:22 +02:00
known_panics_lint.rs AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07:00
large_enums.rs extend allocbytes with associated type 2025-05-26 00:15:16 +02:00
lib.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
lint.rs rename BitSet to DenseBitSet 2025-01-11 11:34:01 +00:00
lint_tail_expr_drop_order.rs Add runtime check to avoid overwrite arg easily in diag and store and restore snapshot when set subdiag arg 2025-06-25 21:07:16 +08:00
lower_intrinsics.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
lower_slice_len.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
match_branches.rs mir-opt: Do not transform non-int type in match_branches 2025-05-26 18:15:54 +08:00
mentioned_items.rs Remove support for dyn* 2025-07-01 19:00:21 +00:00
multiple_return_terminators.rs In rustc_mir_tranform, iterate over index newtypes instead of ints 2025-04-12 11:53:07 +00:00
nrvo.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
pass_manager.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
patch.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
post_analysis_normalize.rs do not emit OpaqueCast projections with -Znext-solver 2025-04-17 12:15:04 +02:00
post_drop_elaboration.rs Make check_live_drops into a MirLint. 2024-09-10 09:11:17 +10:00
prettify.rs Use a closure instead of three chained iterators 2025-04-29 14:58:21 +00:00
promote_consts.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
ref_prop.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_noop_landing_pads.rs Use a closure instead of three chained iterators 2025-04-29 14:58:21 +00:00
remove_place_mention.rs Do not optimize out SwitchInt before borrowck, or if Zmir-preserve-ub 2025-04-08 21:05:20 +00:00
remove_storage_markers.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_uninit_drops.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
remove_unneeded_drops.rs Do not optimize out SwitchInt before borrowck, or if Zmir-preserve-ub 2025-04-08 21:05:20 +00:00
remove_zsts.rs AsyncDrop implementation using shim codegen of async_drop_in_place::{closure}, scoped async drop added. 2025-04-28 16:23:13 +07:00
required_consts.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
sanity_check.rs Move MirPass to rustc_mir_transform. 2024-09-03 16:03:46 +10:00
shim.rs mir: Use the new method for BasicBlockData 2025-06-29 20:39:13 +08:00
simplify.rs Preserve caches in a call to shrink_to_fit 2025-06-18 16:16:45 +02:00
simplify_branches.rs Fix binding mode problems 2025-02-22 00:13:19 +00:00
simplify_comparison_integral.rs mir: Add a new method to statement 2025-06-29 20:13:36 +08:00
single_use_consts.rs Inline and replace Statement::replace_nop. 2025-02-18 13:43:43 +11:00
sroa.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
ssa.rs Reason about borrowed classes in CopyProp. 2025-06-16 14:17:13 +00:00
strip_debuginfo.rs Disable non-required MIR opts with optimize(none) 2025-01-23 17:40:41 +00:00
unreachable_enum_branching.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
unreachable_prop.rs Move MirPatch from rustc_middle to rustc_mir_transform. 2025-02-14 16:15:57 +11:00
validate.rs Remove support for dyn* 2025-07-01 19:00:21 +00:00