diff --git a/hypervisor/src/kvm/aarch64/mod.rs b/hypervisor/src/kvm/aarch64/mod.rs index 7b907fb47..77c76da20 100644 --- a/hypervisor/src/kvm/aarch64/mod.rs +++ b/hypervisor/src/kvm/aarch64/mod.rs @@ -25,7 +25,7 @@ pub use {kvm_ioctls::Cap, kvm_ioctls::Kvm}; // an instance of that structure. #[macro_export] macro_rules! offset_of { - ($str:ty, $($field:ident)+) => ({ + ($str:ty, $field:ident) => {{ let tmp: std::mem::MaybeUninit<$str> = std::mem::MaybeUninit::uninit(); let base = tmp.as_ptr(); @@ -34,14 +34,16 @@ macro_rules! offset_of { // SAFETY: The pointer is valid and aligned, just not initialised. Using `addr_of` ensures // that we don't actually read from `base` (which would be UB) nor create an intermediate // reference. - let member = unsafe { core::ptr::addr_of!((*base).$($field)*) } as *const u8; + let member = unsafe { core::ptr::addr_of!((*base).$field) } as *const u8; // Avoid warnings when nesting `unsafe` blocks. #[allow(unused_unsafe)] // SAFETY: The two pointers are within the same allocated object `tmp`. All requirements // from offset_from are upheld. - unsafe { member.offset_from(base as *const u8) as usize } - }); + unsafe { + member.offset_from(base as *const u8) as usize + } + }}; } // Following are macros that help with getting the ID of a aarch64 core register.