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