| #![feature(core_intrinsics, volatile)] |
| |
| use std::intrinsics::{ |
| unaligned_volatile_load, unaligned_volatile_store, volatile_load, volatile_store, |
| }; |
| use std::ptr::{read_volatile, write_volatile}; |
| |
| pub fn main() { |
| unsafe { |
| let mut i: isize = 1; |
| volatile_store(&mut i, 2); |
| assert_eq!(volatile_load(&i), 2); |
| } |
| unsafe { |
| let mut i: isize = 1; |
| unaligned_volatile_store(&mut i, 2); |
| assert_eq!(unaligned_volatile_load(&i), 2); |
| } |
| unsafe { |
| let mut i: isize = 1; |
| write_volatile(&mut i, 2); |
| assert_eq!(read_volatile(&i), 2); |
| } |
| } |