@@ -1184,17 +1184,21 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
1184
1184
self . propagate_through_expr ( & e, succ)
1185
1185
}
1186
1186
1187
- hir:: ExprKind :: InlineAsm ( ref ia, ref outputs, ref inputs) => {
1187
+ hir:: ExprKind :: InlineAsm ( ref asm) => {
1188
+ let ia = & asm. inner ;
1189
+ let outputs = & asm. outputs_exprs ;
1190
+ let inputs = & asm. inputs_exprs ;
1188
1191
let succ = ia. outputs . iter ( ) . zip ( outputs) . rev ( ) . fold ( succ, |succ, ( o, output) | {
1189
- // see comment on places
1190
- // in propagate_through_place_components()
1191
- if o. is_indirect {
1192
- self . propagate_through_expr ( output, succ)
1193
- } else {
1194
- let acc = if o. is_rw { ACC_WRITE |ACC_READ } else { ACC_WRITE } ;
1195
- let succ = self . write_place ( output, succ, acc) ;
1196
- self . propagate_through_place_components ( output, succ)
1197
- } } ) ;
1192
+ // see comment on places
1193
+ // in propagate_through_place_components()
1194
+ if o. is_indirect {
1195
+ self . propagate_through_expr ( output, succ)
1196
+ } else {
1197
+ let acc = if o. is_rw { ACC_WRITE |ACC_READ } else { ACC_WRITE } ;
1198
+ let succ = self . write_place ( output, succ, acc) ;
1199
+ self . propagate_through_place_components ( output, succ)
1200
+ }
1201
+ } ) ;
1198
1202
1199
1203
// Inputs are executed first. Propagate last because of rev order
1200
1204
self . propagate_through_exprs ( inputs, succ)
@@ -1395,13 +1399,13 @@ fn check_expr<'tcx>(this: &mut Liveness<'_, 'tcx>, expr: &'tcx Expr) {
1395
1399
}
1396
1400
}
1397
1401
1398
- hir:: ExprKind :: InlineAsm ( ref ia , ref outputs , ref inputs ) => {
1399
- for input in inputs {
1402
+ hir:: ExprKind :: InlineAsm ( ref asm ) => {
1403
+ for input in & asm . inputs_exprs {
1400
1404
this. visit_expr ( input) ;
1401
1405
}
1402
1406
1403
1407
// Output operands must be places
1404
- for ( o, output) in ia . outputs . iter ( ) . zip ( outputs ) {
1408
+ for ( o, output) in asm . inner . outputs . iter ( ) . zip ( & asm . outputs_exprs ) {
1405
1409
if !o. is_indirect {
1406
1410
this. check_place ( output) ;
1407
1411
}
0 commit comments