From da193fc73c05012f357dbd0c8db13cd83d67348b Mon Sep 17 00:00:00 2001 From: Grumme2 <agh@live.se> Date: Thu, 20 Feb 2020 14:45:06 +0100 Subject: [PATCH] bare0_5 --- examples/bare0.rs | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/examples/bare0.rs b/examples/bare0.rs index dc52864..f54e950 100644 --- a/examples/bare0.rs +++ b/examples/bare0.rs @@ -33,17 +33,33 @@ const X_INIT: u32 = core::u32::MAX; static mut X: u32 = X_INIT; static mut Y: u32 = 0; +fn read_x()->u32{ + unsafe{X} +} +fn read_y()->u32{ + unsafe{Y} +} + +fn write_y(y:u32){ + unsafe{Y=y}; +} + +fn write_x(x:u32){ + unsafe{X=x}; +} + + #[entry] fn main() -> ! { // local mutable variable (changed in safe code) - let mut x = unsafe { X }; + let mut x = read_x(); loop { x = x.wrapping_add(1); // <- place breakpoint here (3) - 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()); + assert!(x == read_x() && read_x() == read_y()+1); + } } -- GitLab