diff --git a/examples/bare0.rs b/examples/bare0.rs index 075a76296f439e549c59ea70c96c9f6c31f46c9d..17490327e542abdfd00bdc2bd09a0def65b3c186 100644 --- a/examples/bare0.rs +++ b/examples/bare0.rs @@ -18,17 +18,29 @@ static mut Y: u32 = 0; #[inline(never)] fn main() { - let mut x = unsafe { X }; + let mut x = read_x(); loop { x = x.wrapping_add(1); - unsafe { - X = X.wrapping_add(1); - Y = X; - assert!(x == X && X == Y + 1); - } + write_x(read_x().wrapping_add(1)); + write_y(read_x()); } } + +fn write_y(y: u32) { + unsafe { + Y = y; + } +} +fn read_x() -> u32 { + unsafe { X } +} +fn write_x(x: u32) { + unsafe { + X = x; + } +} + // 1. run the program in the debugger, // let the program run for a while and then press pause // look in the (Local -vscode) Variables view what do you find