diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2023-01-18 22:59:52 +0000 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2023-01-27 18:22:45 +0000 |
| commit | 8f1dbe54ea5e05725273ae8ac6c1dda15153fa7c (patch) | |
| tree | 03aa0f0dfacf13ea114617245edad1b6cc99041f /compiler/rustc_mir_transform/src | |
| parent | d45815eb4ae2737b5fb8f4eeeb0eb3d784efeca3 (diff) | |
| download | rust-8f1dbe54ea5e05725273ae8ac6c1dda15153fa7c.tar.gz rust-8f1dbe54ea5e05725273ae8ac6c1dda15153fa7c.zip | |
Discard raw pointers from SSA locals.
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/copy_prop.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/rustc_mir_transform/src/copy_prop.rs b/compiler/rustc_mir_transform/src/copy_prop.rs index 13a18269585..bce307d368c 100644 --- a/compiler/rustc_mir_transform/src/copy_prop.rs +++ b/compiler/rustc_mir_transform/src/copy_prop.rs @@ -117,8 +117,10 @@ impl<'tcx> Visitor<'tcx> for SsaLocals { self.assignments[local].insert(LocationExtended::Plain(loc)); self.assignment_order.push(local); } - PlaceContext::MutatingUse(_) => self.assignments[local] = Set1::Many, - // Immutable borrows and AddressOf are taken into account in `SsaLocals::new` by + // Anything can happen with raw pointers, so remove them. + PlaceContext::NonMutatingUse(NonMutatingUseContext::AddressOf) + | PlaceContext::MutatingUse(_) => self.assignments[local] = Set1::Many, + // Immutable borrows are taken into account in `SsaLocals::new` by // removing non-freeze locals. PlaceContext::NonMutatingUse(_) => { let set = &mut self.assignments[local]; |
