@@ -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
@@ -142,7 +142,7 @@ pub fn entry(args: TokenStream, input: TokenStream) -> TokenStream {
142142
143143 quote ! (
144144 #[ allow( non_snake_case) ]
145- #[ export_name = "main" ]
145+ #[ unsafe ( export_name = "main" ) ]
146146 #( #attrs) *
147147 pub #unsafety fn __risc_v_rt__main( #args) -> ! {
148148 #( #stmts) *
@@ -254,7 +254,7 @@ pub fn pre_init(args: TokenStream, input: TokenStream) -> TokenStream {
254254 let block = f. block ;
255255
256256 quote ! (
257- #[ export_name = "__pre_init" ]
257+ #[ unsafe ( export_name = "__pre_init" ) ]
258258 #( #attrs) *
259259 pub unsafe fn #ident( ) #block
260260 )
@@ -457,7 +457,7 @@ fn store_trap<T: FnMut(&str) -> bool>(arch: RiscvArch, mut filter: T) -> String
457457 arch. trap_frame ( )
458458 . iter ( )
459459 . enumerate ( )
460- . filter ( |( _, & reg) | !reg. starts_with ( '_' ) && filter ( reg) )
460+ . filter ( |( _, reg) | !reg. starts_with ( '_' ) && filter ( reg) )
461461 . map ( |( i, reg) | format ! ( "{store} {reg}, {i}*{width}(sp)" ) )
462462 . collect :: < Vec < _ > > ( )
463463 . join ( "\n " )
@@ -471,7 +471,7 @@ fn load_trap(arch: RiscvArch) -> String {
471471 arch. trap_frame ( )
472472 . iter ( )
473473 . enumerate ( )
474- . filter ( |( _, & reg) | !reg. starts_with ( '_' ) )
474+ . filter ( |( _, reg) | !reg. starts_with ( '_' ) )
475475 . map ( |( i, reg) | format ! ( "{load} {reg}, {i}*{width}(sp)" ) )
476476 . collect :: < Vec < _ > > ( )
477477 . join ( "\n " )
@@ -766,7 +766,7 @@ fn trap(
766766
767767 #start_trap
768768
769- #[ export_name = #export_name]
769+ #[ unsafe ( export_name = #export_name) ]
770770 #f
771771 )
772772 . into ( )
0 commit comments