]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #75092 - kennytm:fix-75009, r=pietroalbini
authorbors <bors@rust-lang.org>
Mon, 3 Aug 2020 09:34:06 +0000 (09:34 +0000)
committerbors <bors@rust-lang.org>
Mon, 3 Aug 2020 09:34:06 +0000 (09:34 +0000)
Fix broken git commit in stdarch

Follow-up on #75009, point to the real master commit.

src/librustc_mir/transform/simplify.rs
src/test/ui/issues/issue-75704.rs [new file with mode: 0644]

index 9288d6e16f5e079e8937a78c521102d1944bb91e..d8995e92abfcc7dbd780569f41dfbfebc7a35221 100644 (file)
@@ -142,8 +142,6 @@ pub fn simplify(mut self) {
                 }
 
                 self.basic_blocks[bb].terminator = Some(terminator);
-
-                changed |= inner_changed;
             }
 
             if !changed {
@@ -212,6 +210,7 @@ fn collapse_goto_chain(&mut self, start: &mut BasicBlock, changed: &mut bool) {
                 Terminator { kind: TerminatorKind::Goto { ref mut target }, .. } => target,
                 _ => unreachable!(),
             };
+            *changed |= *target != last;
             *target = last;
             debug!("collapsing goto chain from {:?} to {:?}", current, target);
 
@@ -223,7 +222,6 @@ fn collapse_goto_chain(&mut self, start: &mut BasicBlock, changed: &mut bool) {
                 self.pred_count[*target] += 1;
                 self.pred_count[current] -= 1;
             }
-            *changed = true;
             self.basic_blocks[current].terminator = Some(terminator);
         }
     }
diff --git a/src/test/ui/issues/issue-75704.rs b/src/test/ui/issues/issue-75704.rs
new file mode 100644 (file)
index 0000000..aed7ddb
--- /dev/null
@@ -0,0 +1,7 @@
+// Caused an infinite loop during SimlifyCfg MIR transform previously.
+//
+// build-pass
+
+fn main() {
+    loop { continue; }
+}