File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -6,6 +6,12 @@ use std::io::prelude::*;
66use std:: io:: { Read , Seek , Write } ;
77use std:: os:: fd:: AsFd ;
88use std:: rc:: { Rc , Weak } ;
9+ pub fn set_0 ( r : Ptr < i32 > ) {
10+ r. write ( 7 ) ;
11+ }
12+ pub fn set_through_1 ( v : Ptr < i32 > ) {
13+ ( { set_0 ( ( v) . clone ( ) ) } ) ;
14+ }
915pub fn main ( ) {
1016 __cpp2rust_init_globals ( ) ;
1117 std:: process:: exit ( main_0 ( ) ) ;
@@ -15,6 +21,13 @@ fn main_0() -> i32 {
1521 let mut p: Ptr < i32 > = ( a. as_pointer ( ) ) ;
1622 let mut q: Ptr < i32 > = ( <AnyPtr >:: from_int ( ( p) . to_any ( ) . to_int ( ) ) ) . reinterpret_cast :: < i32 > ( ) ;
1723 assert ! ( ( { ( p) . clone( ) } == { ( q) . clone( ) } ) ) ;
24+ let v: Value < i32 > = Rc :: new ( RefCell :: new ( 1 ) ) ;
25+ let cr: Ptr < i32 > = v. as_pointer ( ) ;
26+ ( { set_0 ( ( cr) . clone ( ) ) } ) ;
27+ assert ! ( ( ( * v. borrow( ) ) == 7 ) ) ;
28+ ( * v. borrow_mut ( ) ) = 0 ;
29+ ( { set_through_1 ( v. as_pointer ( ) ) } ) ;
30+ assert ! ( ( ( * v. borrow( ) ) == 7 ) ) ;
1831 return 0 ;
1932}
2033pub fn __cpp2rust_init_globals ( ) { }
Original file line number Diff line number Diff line change @@ -6,6 +6,12 @@ use std::collections::BTreeMap;
66use std:: io:: { Read , Seek , Write } ;
77use std:: os:: fd:: { AsFd , FromRawFd , IntoRawFd } ;
88use std:: rc:: Rc ;
9+ pub unsafe fn set_0 ( r : * mut i32 ) {
10+ ( * r) = 7 ;
11+ }
12+ pub unsafe fn set_through_1 ( v : * const i32 ) {
13+ ( unsafe { set_0 ( ( v) . cast_mut ( ) ) } ) ;
14+ }
915pub fn main ( ) {
1016 unsafe {
1117 __cpp2rust_init_globals ( ) ;
@@ -18,6 +24,13 @@ unsafe fn main_0() -> i32 {
1824 let mut q: * mut i32 =
1925 ( ( ( ( ( p) as * const :: libc:: c_void ) as u64 ) as * mut :: libc:: c_void ) as * mut i32 ) ;
2026 assert ! ( ( ( p) == ( ( q) . cast_const( ) ) ) ) ;
27+ let mut v: i32 = 1 ;
28+ let cr: * const i32 = & v;
29+ ( unsafe { set_0 ( ( cr) . cast_mut ( ) ) } ) ;
30+ assert ! ( ( ( v) == ( 7 ) ) ) ;
31+ v = 0 ;
32+ ( unsafe { set_through_1 ( & v) } ) ;
33+ assert ! ( ( ( v) == ( 7 ) ) ) ;
2134 return 0 ;
2235}
2336pub unsafe fn __cpp2rust_init_globals ( ) { }
You can’t perform that action at this time.
0 commit comments