@@ -4,11 +4,11 @@ use proc_macro::TokenStream;
44use proc_macro2:: { Span , TokenStream as TokenStream2 } ;
55use quote:: quote;
66use syn:: {
7+ FnArg , ItemFn , LitInt , LitStr , PatType , Path , ReturnType , Token , Type , Visibility ,
78 parse:: { self , Parse } ,
89 parse_macro_input, parse_quote,
910 punctuated:: Punctuated ,
1011 spanned:: Spanned ,
11- FnArg , ItemFn , LitInt , LitStr , PatType , Path , ReturnType , Token , Type , Visibility ,
1212} ;
1313
1414/// Attribute to declare the entry point of the program
@@ -136,7 +136,7 @@ pub fn entry(args: TokenStream, input: TokenStream) -> TokenStream {
136136
137137 quote ! (
138138 #[ allow( non_snake_case) ]
139- #[ export_name = "main" ]
139+ #[ unsafe ( export_name = "main" ) ]
140140 #( #attrs) *
141141 pub #unsafety fn __risc_v_rt__main( #args) -> ! {
142142 #( #stmts) *
@@ -248,7 +248,7 @@ pub fn pre_init(args: TokenStream, input: TokenStream) -> TokenStream {
248248 let block = f. block ;
249249
250250 quote ! (
251- #[ export_name = "__pre_init" ]
251+ #[ unsafe ( export_name = "__pre_init" ) ]
252252 #( #attrs) *
253253 pub unsafe fn #ident( ) #block
254254 )
@@ -451,7 +451,7 @@ fn store_trap<T: FnMut(&str) -> bool>(arch: RiscvArch, mut filter: T) -> String
451451 arch. trap_frame ( )
452452 . iter ( )
453453 . enumerate ( )
454- . filter ( |( _, & reg) | !reg. starts_with ( '_' ) && filter ( reg) )
454+ . filter ( |( _, reg) | !reg. starts_with ( '_' ) && filter ( reg) )
455455 . map ( |( i, reg) | format ! ( "{store} {reg}, {i}*{width}(sp)" ) )
456456 . collect :: < Vec < _ > > ( )
457457 . join ( "\n " )
@@ -465,7 +465,7 @@ fn load_trap(arch: RiscvArch) -> String {
465465 arch. trap_frame ( )
466466 . iter ( )
467467 . enumerate ( )
468- . filter ( |( _, & reg) | !reg. starts_with ( '_' ) )
468+ . filter ( |( _, reg) | !reg. starts_with ( '_' ) )
469469 . map ( |( i, reg) | format ! ( "{load} {reg}, {i}*{width}(sp)" ) )
470470 . collect :: < Vec < _ > > ( )
471471 . join ( "\n " )
@@ -760,7 +760,7 @@ fn trap(
760760
761761 #start_trap
762762
763- #[ export_name = #export_name]
763+ #[ unsafe ( export_name = #export_name) ]
764764 #f
765765 )
766766 . into ( )
0 commit comments