//@ 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 | |
} |