@@ -34,7 +34,7 @@ use rustc_session::config::{
3434} ;
3535use rustc_span:: source_map:: SourceMap ;
3636use rustc_span:: symbol:: sym;
37- use rustc_span:: { BytePos , FileName , InnerSpan , Pos , Span } ;
37+ use rustc_span:: { FileName , InnerSpan , Span , SpanData } ;
3838use rustc_target:: spec:: { MergeFunctions , SanitizerSet } ;
3939use tracing:: debug;
4040
@@ -1837,7 +1837,7 @@ fn spawn_work<'a, B: ExtraBackendMethods>(
18371837
18381838enum SharedEmitterMessage {
18391839 Diagnostic ( Diagnostic ) ,
1840- InlineAsmError ( u32 , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
1840+ InlineAsmError ( SpanData , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
18411841 Fatal ( String ) ,
18421842}
18431843
@@ -1859,12 +1859,12 @@ impl SharedEmitter {
18591859
18601860 pub fn inline_asm_error (
18611861 & self ,
1862- cookie : u32 ,
1862+ span : SpanData ,
18631863 msg : String ,
18641864 level : Level ,
18651865 source : Option < ( String , Vec < InnerSpan > ) > ,
18661866 ) {
1867- drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) ) ;
1867+ drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) ) ;
18681868 }
18691869
18701870 fn fatal ( & self , msg : & str ) {
@@ -1949,17 +1949,12 @@ impl SharedEmitterMain {
19491949 dcx. emit_diagnostic ( d) ;
19501950 sess. dcx ( ) . abort_if_errors ( ) ;
19511951 }
1952- Ok ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) => {
1952+ Ok ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) => {
19531953 assert_matches ! ( level, Level :: Error | Level :: Warning | Level :: Note ) ;
1954- let msg = msg. strip_prefix ( "error: " ) . unwrap_or ( & msg) . to_string ( ) ;
19551954 let mut err = Diag :: < ( ) > :: new ( sess. dcx ( ) , level, msg) ;
1956-
1957- // If the cookie is 0 then we don't have span information.
1958- if cookie != 0 {
1959- let pos = BytePos :: from_u32 ( cookie) ;
1960- let span = Span :: with_root_ctxt ( pos, pos) ;
1961- err. span ( span) ;
1962- } ;
1955+ if !span. is_dummy ( ) {
1956+ err. span ( span. span ( ) ) ;
1957+ }
19631958
19641959 // Point to the generated assembly if it is available.
19651960 if let Some ( ( buffer, spans) ) = source {
0 commit comments