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