aya-log-ebpf: allow macros in expr position

This is load-bearing in aya-template.
reviewable/pr1339/r1
Tamir Duberstein 6 days ago
parent 222b2cb88f
commit aa47acc507
No known key found for this signature in database

@ -152,6 +152,7 @@ pub(crate) fn log(args: LogArgs, level_expr: Option<TokenStream>) -> Result<Toke
let len = Ident::new("len", Span::mixed_site());
let record = Ident::new("record", Span::mixed_site());
Ok(quote! {
{
let #level = #level_expr;
if ::aya_log_ebpf::macro_support::level_enabled(#level) {
match ::aya_log_ebpf::macro_support::AYA_LOG_BUF.get_ptr_mut(0).and_then(|ptr| unsafe { ptr.as_mut() }) {
@ -183,6 +184,7 @@ pub(crate) fn log(args: LogArgs, level_expr: Option<TokenStream>) -> Result<Toke
}
}
}
}
})
}

@ -83,7 +83,8 @@ pub fn test_log(ctx: ProbeContext) {
let no_copy = NoCopy {};
debug!(&ctx, "{:x}", no_copy.consume());
// Check usage in expression position.
let () = debug!(&ctx, "{:x}", no_copy.consume());
}
}

Loading…
Cancel
Save