- // MIR for `opt` before RemoveUnneededDrops
+ // MIR for `opt` after RemoveUnneededDrops
  
  fn opt(_1: bool) -> () {
      let mut _0: ();
  
      bb0: {
-         drop(_1) -> [return: bb1, unwind unreachable];
-     }
- 
-     bb1: {
          return;
      }
  }
  
