@@ -35,7 +35,7 @@ use rustc_session::config::{
3535use rustc_session:: Session ;
3636use rustc_span:: source_map:: SourceMap ;
3737use rustc_span:: symbol:: sym;
38- use rustc_span:: { BytePos , FileName , InnerSpan , Pos , Span } ;
38+ use rustc_span:: { FileName , InnerSpan , Span , SpanData } ;
3939use rustc_target:: spec:: { MergeFunctions , SanitizerSet } ;
4040use tracing:: debug;
4141
@@ -1851,7 +1851,7 @@ fn spawn_work<'a, B: ExtraBackendMethods>(
18511851
18521852enum SharedEmitterMessage {
18531853 Diagnostic ( Diagnostic ) ,
1854- InlineAsmError ( u32 , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
1854+ InlineAsmError ( SpanData , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
18551855 Fatal ( String ) ,
18561856}
18571857
@@ -1873,12 +1873,12 @@ impl SharedEmitter {
18731873
18741874 pub fn inline_asm_error (
18751875 & self ,
1876- cookie : u32 ,
1876+ span : SpanData ,
18771877 msg : String ,
18781878 level : Level ,
18791879 source : Option < ( String , Vec < InnerSpan > ) > ,
18801880 ) {
1881- drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) ) ;
1881+ drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) ) ;
18821882 }
18831883
18841884 pub fn fatal ( & self , msg : & str ) {
@@ -1963,17 +1963,12 @@ impl SharedEmitterMain {
19631963 dcx. emit_diagnostic ( d) ;
19641964 sess. dcx ( ) . abort_if_errors ( ) ;
19651965 }
1966- Ok ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) => {
1966+ Ok ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) => {
19671967 assert_matches ! ( level, Level :: Error | Level :: Warning | Level :: Note ) ;
1968- let msg = msg. strip_prefix ( "error: " ) . unwrap_or ( & msg) . to_string ( ) ;
19691968 let mut err = Diag :: < ( ) > :: new ( sess. dcx ( ) , level, msg) ;
1970-
1971- // If the cookie is 0 then we don't have span information.
1972- if cookie != 0 {
1973- let pos = BytePos :: from_u32 ( cookie) ;
1974- let span = Span :: with_root_ctxt ( pos, pos) ;
1975- err. span ( span) ;
1976- } ;
1969+ if !span. is_dummy ( ) {
1970+ err. span ( span. span ( ) ) ;
1971+ }
19771972
19781973 // Point to the generated assembly if it is available.
19791974 if let Some ( ( buffer, spans) ) = source {
0 commit comments