1
Fork 0
rust/compiler/rustc_mir_transform/src
bors c469197b19 Auto merge of #115005 - compiler-errors:passes, r=cjgillot
Don't do intra-pass validation on MIR shims

Fixes #114375

In the test that was committed, we end up generating the drop shim for `struct Foo` that looks like:

```
fn std::ptr::drop_in_place(_1: *mut Foo) -> () {
    let mut _0: ();

    bb0: {
        goto -> bb5;
    }

    bb1: {
        return;
    }

    bb2 (cleanup): {
        resume;
    }

    bb3: {
        goto -> bb1;
    }

    bb4 (cleanup): {
        drop(((*_1).0: foo::WrapperWithDrop<()>)) -> [return: bb2, unwind terminate];
    }

    bb5: {
        drop(((*_1).0: foo::WrapperWithDrop<()>)) -> [return: bb3, unwind: bb2];
    }
}
```

In `bb4` and `bb5`, we assert that `(*_1).0` has type `WrapperWithDrop<()>`. However, In a user-facing param env, the type is actually `WrapperWithDrop<Tait>`. These types are not equal in a user-facing param-env (and can't be made equal even if we use `DefiningAnchor::Bubble`, since it's a non-local TAIT).
2023-08-22 22:04:49 +00:00
..
coverage Auto merge of #114993 - RalfJung:panic-nounwind, r=fee1-dead 2023-08-20 22:01:18 +00:00
inline refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
abort_unwinding_calls.rs Add UnwindAction::Terminate 2023-04-06 09:34:16 +01:00
add_call_guards.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00: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
check_alignment.rs Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
check_const_item_mutation.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
check_packed_ref.rs Migrate mir_transform to translatable diagnostics 2023-05-02 16:24:18 +01:00
check_unsafety.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02:00
cleanup_post_borrowck.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
const_debuginfo.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
const_goto.rs Disable two mir opts that are known to be unsound 2023-06-21 07:41:09 +00:00
const_prop.rs interpret: have assert_* intrinsics call the panic machinery instead of a direct abort 2023-08-20 15:52:40 +02:00
const_prop_lint.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02:00
copy_prop.rs cleanup misinformation regarding has_deref 2023-08-06 17:29:09 +03:00
ctfe_limit.rs Simplify back-edge logic. 2023-05-17 12:18:55 +00:00
dataflow_const_prop.rs interpret: have assert_* intrinsics call the panic machinery instead of a direct abort 2023-08-20 15:52:40 +02:00
dead_store_elimination.rs Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
deduce_param_attrs.rs Normalize before checking if local is freeze in deduced_param_attrs 2023-08-17 14:33:24 -07:00
deduplicate_blocks.rs Replace Body::basic_blocks() with field access 2022-08-26 14:27:08 +02:00
deref_separator.rs Avoid cloning LocalDecls. 2023-06-29 11:53:41 +10:00
dest_prop.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02: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 Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
elaborate_box_derefs.rs refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
elaborate_drops.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02:00
errors.rs Auto merge of #112017 - Nemo157:unsafe-block-rustfix, r=eholk 2023-06-13 15:57:59 +00:00
ffi_unwind_calls.rs feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
function_item_references.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
generator.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02:00
inline.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02:00
instsimplify.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
large_enums.rs refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
lib.rs Added comment on reason for method being public 2023-08-08 17:36:30 +02:00
lower_intrinsics.rs Forbid old-style simd_shuffleN intrinsics 2023-08-03 09:29:00 +00:00
lower_slice_len.rs Better error for non const PartialEq call generated by match 2023-06-18 05:24:38 +00:00
match_branches.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
multiple_return_terminators.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
normalize_array_len.rs Rename adjustment::PointerCast and variants using it to PointerCoercion 2023-07-07 18:17:16 +02:00
nrvo.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
pass_manager.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
prettify.rs make reorder BB pass use cached RPO 2023-06-14 20:08:04 +00:00
ref_prop.rs Revert "Implement references VarDebugInfo." 2023-08-17 17:02:04 +00:00
remove_noop_landing_pads.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02: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 Rename MaybeUnreachable. 2023-08-16 18:12:18 +00: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 inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
required_consts.rs Only rewrite valtree-constants to patterns and keep other constants opaque 2023-05-31 14:02:57 +00:00
reveal_all.rs Also reveal constants before MIR opts. 2023-04-23 10:04:41 +00:00
separate_const_switch.rs give some unwind-related terminators a more clear name 2023-08-20 15:52:38 +02:00
shim.rs Auto merge of #115005 - compiler-errors:passes, r=cjgillot 2023-08-22 22:04:49 +00:00
simplify.rs Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
simplify_branches.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
simplify_comparison_integral.rs Use param_env_reveal_all_normalized in MIR opts. 2023-04-23 10:04:41 +00:00
sroa.rs refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
ssa.rs Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
uninhabited_enum_branching.rs Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
unreachable_prop.rs Fix typos in compiler 2023-04-10 22:02:52 +02:00