rust/compiler/rustc_mir_transform/src
bors 29fe618f75 Auto merge of #123052 - maurer:addr-taken, r=compiler-errors
CFI: Support function pointers for trait methods

Adds support for both CFI and KCFI for function pointers to trait methods by attaching both concrete and abstract types to functions.

KCFI does this through generation of a `ReifyShim` on any function pointer for a method that could go into a vtable, and keeping this separate from `ReifyShim`s that are *intended* for vtable us by setting a `ReifyReason` on them.

CFI does this by setting both the concrete and abstract type on every instance.

This should land after #123024 or a similar PR, as it diverges the implementation of CFI vs KCFI.

r? `@compiler-errors`
2024-04-04 06:40:30 +00:00
..
coroutine Comments, comments, comments 2024-04-02 20:07:49 -04:00
coverage Replace RemapFileNameExt::for_codegen with explicit calls 2024-03-28 18:47:26 +01:00
inline Track reason for creating a ReifyShim 2024-04-02 19:11:16 +00:00
abort_unwinding_calls.rs Fix mir pass ICE in the presence of other errors 2024-02-08 14:49:27 +00:00
add_call_guards.rs remove redundant imports 2023-12-10 10:56:22 +08:00
add_moves_for_packed_drops.rs remove redundant imports 2023-12-10 10:56:22 +08:00
add_retag.rs add_retag: ensure box-to-raw-ptr casts are preserved for Miri 2024-03-18 10:32:25 +01:00
add_subtyping_projections.rs remove redundant imports 2023-12-10 10:56:22 +08:00
check_alignment.rs Eagerly convert some ctors to use their specialized ctors 2024-03-22 11:12:01 -04:00
check_const_item_mutation.rs Rename TyCtxt::emit_spanned_lint as TyCtxt::emit_node_span_lint. 2024-01-23 08:09:05 +11:00
check_packed_ref.rs Remove Session methods that duplicate DiagCtxt methods. 2023-12-24 08:05:28 +11:00
cleanup_post_borrowck.rs Unbox and unwrap the contents of StatementKind::Coverage 2024-03-23 22:05:11 +11:00
const_debuginfo.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
copy_prop.rs remove redundant imports 2023-12-10 10:56:22 +08:00
coroutine.rs rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
cost_checker.rs Make is_intrinsic query return the intrinsic name 2024-02-12 09:33:52 +00:00
cross_crate_inline.rs Remove all checks of IntrinsicDef::must_be_overridden except for the actual overrides in codegen 2024-03-19 09:19:58 +00:00
ctfe_limit.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
dataflow_const_prop.rs Rollup merge of #122784 - jswrenn:tag_for_variant, r=compiler-errors 2024-03-22 20:31:29 +01:00
dead_store_elimination.rs Auto merge of #116520 - Enselic:large-copy-into-fn, r=oli-obk 2024-01-16 19:33:14 +00:00
deduce_param_attrs.rs Dejargnonize subst 2024-02-12 15:46:35 +09:00
deduplicate_blocks.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
deref_separator.rs remove redundant imports 2023-12-10 10:56:22 +08:00
dest_prop.rs Implement asm goto in MIR and MIR lowering 2024-02-24 18:50:09 +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 Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
elaborate_box_derefs.rs rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
elaborate_drops.rs Convert delayed_bugs to bugs. 2024-02-21 10:20:05 +11:00
errors.rs Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
ffi_unwind_calls.rs Rename mir_const query to mir_built 2024-03-20 09:05:22 +00:00
function_item_references.rs Make RawPtr take Ty and Mutbl separately 2024-03-22 11:13:29 -04:00
gvn.rs rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
inline.rs Track reason for creating a ReifyShim 2024-04-02 19:11:16 +00:00
instsimplify.rs Eliminate UbCheck for non-standard libraries 2024-03-27 21:02:40 +08:00
jump_threading.rs Rollup merge of #122784 - jswrenn:tag_for_variant, r=compiler-errors 2024-03-22 20:31:29 +01:00
known_panics_lint.rs rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
large_enums.rs Fix some comments 2023-12-28 12:23:14 +08:00
lib.rs Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
lint.rs compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
lower_intrinsics.rs Add+Use mir::BinOp::Cmp 2024-03-23 23:23:41 -07:00
lower_slice_len.rs compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
match_branches.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
mentioned_items.rs mentioned_items: avoid adding str/slice unsizing casts 2024-03-20 11:16:11 +01:00
multiple_return_terminators.rs remove redundant imports 2023-12-10 10:56:22 +08:00
normalize_array_len.rs remove redundant imports 2023-12-10 10:56:22 +08:00
nrvo.rs and more 2024-03-28 17:19:15 +03:00
pass_manager.rs Only split by-ref/by-move futures for async closures 2024-03-19 16:59:23 -04:00
prettify.rs remove redundant imports 2023-12-10 10:56:22 +08:00
promote_consts.rs rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
ref_prop.rs Dejargnonize subst 2024-02-12 15:46:35 +09:00
remove_noop_landing_pads.rs Avoid debug logging entire MIR body 2024-02-15 15:54:28 +01:00
remove_place_mention.rs remove redundant imports 2023-12-10 10:56:22 +08:00
remove_storage_markers.rs Move condition enabling the pass to is_enabled 2024-01-23 20:58:44 +01:00
remove_uninit_drops.rs remove redundant imports 2023-12-10 10:56:22 +08:00
remove_unneeded_drops.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
remove_zsts.rs Add CoroutineClosure to TyKind, AggregateKind, UpvarArgs 2024-02-06 02:22:58 +00:00
required_consts.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
reveal_all.rs remove redundant imports 2023-12-10 10:56:22 +08:00
shim.rs Auto merge of #123052 - maurer:addr-taken, r=compiler-errors 2024-04-04 06:40:30 +00:00
simplify.rs rustc_index: Add a ZERO constant to index types 2024-04-03 19:06:22 +03:00
simplify_branches.rs simplify_branches: add comment 2024-03-24 12:53:03 +01:00
simplify_comparison_integral.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
sroa.rs remove redundant imports 2023-12-10 10:56:22 +08:00
ssa.rs Remove unused fields in some structures 2024-03-12 10:59:40 +01:00
unreachable_enum_branching.rs Remove restrictions on small enum statements such as Order, Option or Result 2024-03-13 22:35:11 +08:00
unreachable_prop.rs coverage: Re-enable UnreachablePropagation for coverage builds 2024-03-26 11:46:04 +11:00