diff options
| author | Martin Nordholts <enselic@gmail.com> | 2023-07-20 21:01:27 +0200 |
|---|---|---|
| committer | Martin Nordholts <enselic@gmail.com> | 2023-07-22 14:04:45 +0200 |
| commit | b4b33df983b4badac5c2578756cd42a76236be8d (patch) | |
| tree | 7555a36c1b0f7562ff7faba969b13f9d94e4acdd /compiler/rustc_mir_transform | |
| parent | eed34b8bc1ef39fd3d76fc72e54d346f90a26ef0 (diff) | |
| download | rust-b4b33df983b4badac5c2578756cd42a76236be8d.tar.gz rust-b4b33df983b4badac5c2578756cd42a76236be8d.zip | |
Make `unconditional_recursion` warning detect recursive drops
Diffstat (limited to 'compiler/rustc_mir_transform')
| -rw-r--r-- | compiler/rustc_mir_transform/Cargo.toml | 1 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/lib.rs | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/compiler/rustc_mir_transform/Cargo.toml b/compiler/rustc_mir_transform/Cargo.toml index eca5f98a2c0..f1198d9bfd3 100644 --- a/compiler/rustc_mir_transform/Cargo.toml +++ b/compiler/rustc_mir_transform/Cargo.toml @@ -18,6 +18,7 @@ rustc_hir = { path = "../rustc_hir" } rustc_index = { path = "../rustc_index" } rustc_middle = { path = "../rustc_middle" } rustc_const_eval = { path = "../rustc_const_eval" } +rustc_mir_build = { path = "../rustc_mir_build" } rustc_mir_dataflow = { path = "../rustc_mir_dataflow" } rustc_serialize = { path = "../rustc_serialize" } rustc_session = { path = "../rustc_session" } diff --git a/compiler/rustc_mir_transform/src/lib.rs b/compiler/rustc_mir_transform/src/lib.rs index d419329f2d6..abbac8f2554 100644 --- a/compiler/rustc_mir_transform/src/lib.rs +++ b/compiler/rustc_mir_transform/src/lib.rs @@ -446,6 +446,10 @@ fn mir_drops_elaborated_and_const_checked(tcx: TyCtxt<'_>, def: LocalDefId) -> & run_analysis_to_runtime_passes(tcx, &mut body); + // Now that drop elaboration has been performed, we can check for + // unconditional drop recursion. + rustc_mir_build::lints::check_drop_recursion(tcx, &body); + tcx.alloc_steal_mir(body) } |
