//@ only-x86_64 use std::sync::atomic::{compiler_fence, fence, Ordering}; fn main() { // Allowed ordering modes fence(Ordering::Acquire); fence(Ordering::Release); fence(Ordering::AcqRel); fence(Ordering::SeqCst); compiler_fence(Ordering::Acquire); compiler_fence(Ordering::Release); compiler_fence(Ordering::AcqRel); compiler_fence(Ordering::SeqCst); // Disallowed ordering modes fence(Ordering::Relaxed); //~^ ERROR memory fences cannot have `Relaxed` ordering compiler_fence(Ordering::Relaxed); //~^ ERROR memory fences cannot have `Relaxed` ordering }