error[E0308]: mismatched types
  --> $DIR/signature.rs:10:1
   |
LL | / pub unsafe extern "C" fn foo(a: i32, b: u32) -> u32 {
LL | |
LL | |     loop {}
LL | | }
   | |_^ expected normal fn, found unsafe fn
   |
   = note: expected fn pointer `fn(proc_macro::TokenStream) -> proc_macro::TokenStream`
                 found fn item `unsafe extern "C" fn(i32, u32) -> u32 {foo}`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.
