diff options
Diffstat (limited to 'rtic-macros/src/syntax')
| -rw-r--r-- | rtic-macros/src/syntax/backend/riscv_slic.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/rtic-macros/src/syntax/backend/riscv_slic.rs b/rtic-macros/src/syntax/backend/riscv_slic.rs index 2ed8e77..b579b01 100644 --- a/rtic-macros/src/syntax/backend/riscv_slic.rs +++ b/rtic-macros/src/syntax/backend/riscv_slic.rs @@ -1,16 +1,27 @@ use syn::{ parse::{Parse, ParseStream}, - Ident, Result, + Result, }; #[derive(Debug)] pub struct BackendArgs { - pub hart_id: Ident, + #[cfg(feature = "riscv-clint")] + pub hart_id: syn::Ident, } impl Parse for BackendArgs { fn parse(input: ParseStream) -> Result<Self> { - let hart_id = input.parse()?; - Ok(BackendArgs { hart_id }) + match () { + #[cfg(feature = "riscv-clint")] + () => { + let hart_id = input.parse()?; + Ok(BackendArgs { hart_id }) + } + #[cfg(feature = "riscv-mecall")] + () => Err(syn::Error::new( + input.span(), + "riscv-mecall backend does not accept any arguments", + )), + } } } |
