diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2023-01-22 20:39:44 +0000 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2023-01-27 18:22:45 +0000 |
| commit | 263da251af6b1735487add274a4ed09487c69412 (patch) | |
| tree | 635a2418b32943f44d07722428ab336a50aa0ab7 | |
| parent | d29dc057ba53063a9ce7f1b307a89759a096f4ac (diff) | |
| download | rust-263da251af6b1735487add274a4ed09487c69412.tar.gz rust-263da251af6b1735487add274a4ed09487c69412.zip | |
Use successor location for dominator check.
The assignment is complete only after the statement. This marks self-assignments `x = x + 1` as non-sSA.
| -rw-r--r-- | compiler/rustc_mir_transform/src/ssa.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/ssa.rs b/compiler/rustc_mir_transform/src/ssa.rs index b6e0c6e6150..bc3fe65cf6c 100644 --- a/compiler/rustc_mir_transform/src/ssa.rs +++ b/compiler/rustc_mir_transform/src/ssa.rs @@ -162,7 +162,7 @@ impl<'tcx> Visitor<'tcx> for SsaVisitor { Set1::Empty | Set1::Many => false, Set1::One(LocationExtended::Arg) => true, Set1::One(LocationExtended::Plain(assign)) => { - assign.dominates(loc, &self.dominators) + assign.successor_within_block().dominates(loc, &self.dominators) } }; // We are visiting a use that is not dominated by an assignment. |
