Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- let a=4u32;
- let b = &a as *const u32;
- let b = b as *mut u32;
- unsafe {
- test(&a, &mut *b);
- println!("{}",*b);
- }
- }
- fn test(a:&u32, b:&mut u32)->u32{
- if *a < 5 {
- *b+= 20;
- }//compiler assumes a variable cannot be
- //aliased if it's mutable, so it puts an else
- //here
- if *a > 10 {
- *b+=10;
- }
- *b //expected result: 34, actual result
- // (in release) 24
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement