@@ -1190,52 +1190,47 @@ impl<'hir> LoweringContext<'_, 'hir> {
11901190 input| {
11911191 match used_regs. entry ( r) {
11921192 Entry :: Occupied ( o) => {
1193- if !skip {
1194- skip = true ;
1195-
1196- let idx2 = * o. get ( ) ;
1197- let op2 = & operands[ idx2] ;
1198- let op_sp2 = asm. operands [ idx2] . 1 ;
1199- let reg2 = match op2. reg ( ) {
1200- Some ( asm:: InlineAsmRegOrRegClass :: Reg ( r) ) => r,
1201- _ => unreachable ! ( ) ,
1202- } ;
1203-
1204- let msg = format ! (
1205- "register `{}` conflicts with register `{}`" ,
1206- reg. name( ) ,
1207- reg2. name( )
1208- ) ;
1209- let mut err = sess. struct_span_err ( op_sp, & msg) ;
1210- err. span_label (
1211- op_sp,
1212- & format ! ( "register `{}`" , reg. name( ) ) ,
1213- ) ;
1214- err. span_label (
1215- op_sp2,
1216- & format ! ( "register `{}`" , reg2. name( ) ) ,
1217- ) ;
1218-
1219- match ( op, op2) {
1220- (
1221- hir:: InlineAsmOperand :: In { .. } ,
1222- hir:: InlineAsmOperand :: Out { late, .. } ,
1223- )
1224- | (
1225- hir:: InlineAsmOperand :: Out { late, .. } ,
1226- hir:: InlineAsmOperand :: In { .. } ,
1227- ) => {
1228- assert ! ( !* late) ;
1229- let out_op_sp = if input { op_sp2 } else { op_sp } ;
1230- let msg = "use `lateout` instead of \
1231- `out` to avoid conflict";
1232- err. span_help ( out_op_sp, msg) ;
1233- }
1234- _ => { }
1193+ if skip {
1194+ return ;
1195+ }
1196+ skip = true ;
1197+
1198+ let idx2 = * o. get ( ) ;
1199+ let op2 = & operands[ idx2] ;
1200+ let op_sp2 = asm. operands [ idx2] . 1 ;
1201+ let reg2 = match op2. reg ( ) {
1202+ Some ( asm:: InlineAsmRegOrRegClass :: Reg ( r) ) => r,
1203+ _ => unreachable ! ( ) ,
1204+ } ;
1205+
1206+ let msg = format ! (
1207+ "register `{}` conflicts with register `{}`" ,
1208+ reg. name( ) ,
1209+ reg2. name( )
1210+ ) ;
1211+ let mut err = sess. struct_span_err ( op_sp, & msg) ;
1212+ err. span_label ( op_sp, & format ! ( "register `{}`" , reg. name( ) ) ) ;
1213+ err. span_label ( op_sp2, & format ! ( "register `{}`" , reg2. name( ) ) ) ;
1214+
1215+ match ( op, op2) {
1216+ (
1217+ hir:: InlineAsmOperand :: In { .. } ,
1218+ hir:: InlineAsmOperand :: Out { late, .. } ,
1219+ )
1220+ | (
1221+ hir:: InlineAsmOperand :: Out { late, .. } ,
1222+ hir:: InlineAsmOperand :: In { .. } ,
1223+ ) => {
1224+ assert ! ( !* late) ;
1225+ let out_op_sp = if input { op_sp2 } else { op_sp } ;
1226+ let msg = "use `lateout` instead of \
1227+ `out` to avoid conflict";
1228+ err. span_help ( out_op_sp, msg) ;
12351229 }
1236-
1237- err. emit ( ) ;
1230+ _ => { }
12381231 }
1232+
1233+ err. emit ( ) ;
12391234 }
12401235 Entry :: Vacant ( v) => {
12411236 v. insert ( idx) ;
0 commit comments