- // MIR for `escaping` before ScalarReplacementOfAggregates
+ // MIR for `escaping` after ScalarReplacementOfAggregates
  
  fn escaping() -> () {
      let mut _0: ();
      let _1: ();
      let mut _2: *const u32;
      let _3: &u32;
      let _4: Escaping;
      let mut _5: u32;
  
      bb0: {
          StorageLive(_1);
          StorageLive(_2);
          StorageLive(_3);
          StorageLive(_4);
          StorageLive(_5);
          _5 = g() -> [return: bb1, unwind unreachable];
      }
  
      bb1: {
          _4 = Escaping { a: const 1_u32, b: const 2_u32, c: move _5 };
          StorageDead(_5);
          _3 = &(_4.0: u32);
          _2 = &raw const (*_3);
          _1 = f(move _2) -> [return: bb2, unwind unreachable];
      }
  
      bb2: {
          StorageDead(_2);
          StorageDead(_4);
          StorageDead(_3);
          StorageDead(_1);
          _0 = const ();
          return;
      }
  }
  
