@@ -34,7 +34,7 @@ use rustc_session::config::{
34
34
} ;
35
35
use rustc_span:: source_map:: SourceMap ;
36
36
use rustc_span:: symbol:: sym;
37
- use rustc_span:: { BytePos , FileName , InnerSpan , Pos , Span } ;
37
+ use rustc_span:: { FileName , InnerSpan , Span , SpanData } ;
38
38
use rustc_target:: spec:: { MergeFunctions , SanitizerSet } ;
39
39
use tracing:: debug;
40
40
@@ -1837,7 +1837,7 @@ fn spawn_work<'a, B: ExtraBackendMethods>(
1837
1837
1838
1838
enum SharedEmitterMessage {
1839
1839
Diagnostic ( Diagnostic ) ,
1840
- InlineAsmError ( u32 , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
1840
+ InlineAsmError ( SpanData , String , Level , Option < ( String , Vec < InnerSpan > ) > ) ,
1841
1841
Fatal ( String ) ,
1842
1842
}
1843
1843
@@ -1859,12 +1859,12 @@ impl SharedEmitter {
1859
1859
1860
1860
pub fn inline_asm_error (
1861
1861
& self ,
1862
- cookie : u32 ,
1862
+ span : SpanData ,
1863
1863
msg : String ,
1864
1864
level : Level ,
1865
1865
source : Option < ( String , Vec < InnerSpan > ) > ,
1866
1866
) {
1867
- drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) ) ;
1867
+ drop ( self . sender . send ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) ) ;
1868
1868
}
1869
1869
1870
1870
fn fatal ( & self , msg : & str ) {
@@ -1949,17 +1949,12 @@ impl SharedEmitterMain {
1949
1949
dcx. emit_diagnostic ( d) ;
1950
1950
sess. dcx ( ) . abort_if_errors ( ) ;
1951
1951
}
1952
- Ok ( SharedEmitterMessage :: InlineAsmError ( cookie , msg, level, source) ) => {
1952
+ Ok ( SharedEmitterMessage :: InlineAsmError ( span , msg, level, source) ) => {
1953
1953
assert_matches ! ( level, Level :: Error | Level :: Warning | Level :: Note ) ;
1954
- let msg = msg. strip_prefix ( "error: " ) . unwrap_or ( & msg) . to_string ( ) ;
1955
1954
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
+ }
1963
1958
1964
1959
// Point to the generated assembly if it is available.
1965
1960
if let Some ( ( buffer, spans) ) = source {
0 commit comments