11#![ deny( warnings) ]
22
33extern crate proc_macro;
4- extern crate rand;
54#[ macro_use]
65extern crate quote;
76extern crate core;
@@ -10,13 +9,7 @@ extern crate proc_macro2;
109extern crate syn;
1110
1211use proc_macro2:: Span ;
13- use rand:: Rng ;
14- use rand:: SeedableRng ;
15- use std:: sync:: atomic:: { AtomicUsize , Ordering } ;
16- use std:: time:: { SystemTime , UNIX_EPOCH } ;
17- use syn:: { parse, spanned:: Spanned , Ident , ItemFn , ReturnType , Type , Visibility } ;
18-
19- static CALL_COUNT : AtomicUsize = AtomicUsize :: new ( 0 ) ;
12+ use syn:: { parse, spanned:: Spanned , ItemFn , ReturnType , Type , Visibility } ;
2013
2114use proc_macro:: TokenStream ;
2215
@@ -90,13 +83,12 @@ pub fn entry(args: TokenStream, input: TokenStream) -> TokenStream {
9083 // XXX should we blacklist other attributes?
9184 let attrs = f. attrs ;
9285 let unsafety = f. sig . unsafety ;
93- let hash = random_ident ( ) ;
9486 let stmts = f. block . stmts ;
9587
9688 quote ! (
9789 #[ export_name = "main" ]
9890 #( #attrs) *
99- pub #unsafety fn #hash ( ) -> ! {
91+ pub #unsafety fn __risc_v_rt__main ( ) -> ! {
10092 #( #stmts) *
10193 }
10294 )
@@ -176,36 +168,3 @@ pub fn pre_init(args: TokenStream, input: TokenStream) -> TokenStream {
176168 )
177169 . into ( )
178170}
179-
180- // Creates a random identifier
181- fn random_ident ( ) -> Ident {
182- let secs = SystemTime :: now ( )
183- . duration_since ( UNIX_EPOCH )
184- . unwrap ( )
185- . as_secs ( ) ;
186-
187- let count: u64 = CALL_COUNT . fetch_add ( 1 , Ordering :: SeqCst ) as u64 ;
188- let mut seed: [ u8 ; 16 ] = [ 0 ; 16 ] ;
189-
190- for ( i, v) in seed. iter_mut ( ) . take ( 8 ) . enumerate ( ) {
191- * v = ( ( secs >> ( i * 8 ) ) & 0xFF ) as u8
192- }
193-
194- for ( i, v) in seed. iter_mut ( ) . skip ( 8 ) . enumerate ( ) {
195- * v = ( ( count >> ( i * 8 ) ) & 0xFF ) as u8
196- }
197-
198- let mut rng = rand:: rngs:: SmallRng :: from_seed ( seed) ;
199- Ident :: new (
200- & ( 0 ..16 )
201- . map ( |i| {
202- if i == 0 || rng. gen ( ) {
203- ( 'a' as u8 + rng. gen :: < u8 > ( ) % 25 ) as char
204- } else {
205- ( '0' as u8 + rng. gen :: < u8 > ( ) % 10 ) as char
206- }
207- } )
208- . collect :: < String > ( ) ,
209- Span :: call_site ( ) ,
210- )
211- }
0 commit comments