]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-11004.rs
Merge commit 'a8385522ade6f67853edac730b5bf164ddb298fd' into simd-remove-autosplats
[rust.git] / src / test / ui / issues / issue-11004.rs
1 use std::mem;
2
3 struct A { x: i32, y: f64 }
4
5 #[cfg(not(works))]
6 unsafe fn access(n:*mut A) -> (i32, f64) {
7     let x : i32 = n.x; //~ no field `x` on type `*mut A`
8     let y : f64 = n.y; //~ no field `y` on type `*mut A`
9     (x, y)
10 }
11
12 #[cfg(works)]
13 unsafe fn access(n:*mut A) -> (i32, f64) {
14     let x : i32 = (*n).x;
15     let y : f64 = (*n).y;
16     (x, y)
17 }
18
19 fn main() {
20     let a :  A = A { x: 3, y: 3.14 };
21     let p : &A = &a;
22     let (x,y) = unsafe {
23         let n : *mut A = mem::transmute(p);
24         access(n)
25     };
26     println!("x: {}, y: {}", x, y);
27 }