@@ -12,6 +12,7 @@ input_file: c2rust-transpile/tests/snapshots/macros.c
1212 unused_assignments ,
1313 unused_mut
1414)]
15+ #! [feature (raw_ref_op )]
1516extern " C" {
1617 fn extern_fn () - > std ::ffi ::c_int ;
1718}
@@ -62,8 +63,7 @@ pub const NESTED_STRUCT: S = unsafe {
6263};
6364pub const PARENS: std ::ffi ::c_int = unsafe { NESTED_INT * (LITERAL_CHAR + true_0 ) };
6465pub const PTR_ARITHMETIC: *const std ::ffi ::c_char = unsafe {
65- LITERAL_STR
66- .as_ptr()
66+ (&raw const LITERAL_STR as *const std : :ffi ::c_char )
6767 .offset(5 as std : :ffi ::c_int as isize )
6868 .offset(-(3 as std : :ffi ::c_int as isize ))
6969};
@@ -92,7 +92,8 @@ pub unsafe extern "C" fn local_muts() {
9292 let mut literal_bool: bool = LITERAL_BOOL != 0 ;
9393 let mut literal_float: std ::ffi ::c_float = LITERAL_FLOAT as std ::ffi ::c_float ;
9494 let mut literal_char: std ::ffi ::c_char = LITERAL_CHAR as std ::ffi ::c_char ;
95- let mut literal_str_ptr: *const std ::ffi ::c_char = LITERAL_STR .as_ptr ();
95+ let mut literal_str_ptr: *const std ::ffi ::c_char =
96+ & raw const LITERAL_STR as *const std: :ffi ::c_char ;
9697 let mut literal_str: [std ::ffi ::c_char ; 6 ] = LITERAL_STR ;
9798 let mut literal_array: [std ::ffi ::c_int ; 3 ] = [
9899 1 as std ::ffi ::c_int ,
@@ -104,7 +105,8 @@ pub unsafe extern "C" fn local_muts() {
104105 let mut nested_bool: bool = NESTED_BOOL != 0 ;
105106 let mut nested_float: std ::ffi ::c_float = NESTED_FLOAT as std ::ffi ::c_float ;
106107 let mut nested_char: std ::ffi ::c_char = NESTED_CHAR as std ::ffi ::c_char ;
107- let mut nested_str_ptr: *const std ::ffi ::c_char = NESTED_STR .as_ptr ();
108+ let mut nested_str_ptr: *const std ::ffi ::c_char =
109+ & raw const NESTED_STR as *const std: :ffi ::c_char ;
108110 let mut nested_str: [std ::ffi ::c_char ; 6 ] = NESTED_STR ;
109111 let mut nested_array: [std ::ffi ::c_int ; 3 ] = [
110112 1 as std ::ffi ::c_int ,
@@ -129,10 +131,9 @@ pub unsafe extern "C" fn local_muts() {
129131 let mut str_concatenation: [std ::ffi ::c_char ; 18 ] =
130132 * ::core ::mem ::transmute ::< & [u8 ; 18 ], & mut [std ::ffi ::c_char ; 18 ]> (b " hello hello world\0 " );
131133 let mut builtin: std ::ffi ::c_int = (LITERAL_INT as std ::ffi ::c_uint ).leading_zeros () as i32 ;
132- let mut ref_indexing: *const std ::ffi ::c_char = & * NESTED_STR
133- .as_ptr ()
134- .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize )
135- as *const std ::ffi ::c_char ;
134+ let mut ref_indexing: *const std ::ffi ::c_char = & raw const * (& raw const NESTED_STR
135+ as *const std ::ffi ::c_char )
136+ .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize );
136137 let mut ref_struct: *const S = & mut LITERAL_STRUCT as *mut S ;
137138 let mut ternary: std ::ffi ::c_int = if LITERAL_BOOL != 0 {
138139 1 as std::ffi ::c_int
@@ -148,7 +149,8 @@ pub unsafe extern "C" fn local_consts() {
148149 let literal_bool: bool = LITERAL_BOOL != 0 ;
149150 let literal_float: std ::ffi ::c_float = LITERAL_FLOAT as std ::ffi ::c_float ;
150151 let literal_char: std ::ffi ::c_char = LITERAL_CHAR as std ::ffi ::c_char ;
151- let literal_str_ptr: *const std ::ffi ::c_char = LITERAL_STR .as_ptr ();
152+ let literal_str_ptr: *const std ::ffi ::c_char =
153+ & raw const LITERAL_STR as *const std: :ffi ::c_char ;
152154 let literal_str: [std ::ffi ::c_char ; 6 ] = LITERAL_STR ;
153155 let literal_array: [std ::ffi ::c_int ; 3 ] = [
154156 1 as std ::ffi ::c_int ,
@@ -160,7 +162,7 @@ pub unsafe extern "C" fn local_consts() {
160162 let nested_bool: bool = NESTED_BOOL != 0 ;
161163 let nested_float: std ::ffi ::c_float = NESTED_FLOAT as std ::ffi ::c_float ;
162164 let nested_char: std ::ffi ::c_char = NESTED_CHAR as std ::ffi ::c_char ;
163- let nested_str_ptr: *const std ::ffi ::c_char = NESTED_STR . as_ptr () ;
165+ let nested_str_ptr: *const std ::ffi ::c_char = & raw const NESTED_STR as * const std :: ffi :: c_char ;
164166 let nested_str: [std ::ffi ::c_char ; 6 ] = NESTED_STR ;
165167 let nested_array: [std ::ffi ::c_int ; 3 ] = [
166168 1 as std ::ffi ::c_int ,
@@ -185,10 +187,9 @@ pub unsafe extern "C" fn local_consts() {
185187 let str_concatenation: [std ::ffi ::c_char ; 18 ] =
186188 * ::core ::mem ::transmute ::< & [u8 ; 18 ], & [std ::ffi ::c_char ; 18 ]> (b " hello hello world\0 " );
187189 let builtin: std ::ffi ::c_int = (LITERAL_INT as std ::ffi ::c_uint ).leading_zeros () as i32 ;
188- let ref_indexing: *const std ::ffi ::c_char = & * NESTED_STR
189- .as_ptr ()
190- .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize )
191- as *const std ::ffi ::c_char ;
190+ let ref_indexing: *const std ::ffi ::c_char = & raw const * (& raw const NESTED_STR
191+ as *const std ::ffi ::c_char )
192+ .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize );
192193 let ref_struct: *const S = & mut LITERAL_STRUCT as *mut S ;
193194 let ternary: std ::ffi ::c_int = if LITERAL_BOOL != 0 {
194195 1 as std::ffi ::c_int
@@ -203,7 +204,8 @@ static mut global_static_const_literal_bool: bool = LITERAL_BOOL != 0;
203204static mut global_static_const_literal_float : std ::ffi ::c_float =
204205 LITERAL_FLOAT as std ::ffi ::c_float ;
205206static mut global_static_const_literal_char : std ::ffi ::c_char = LITERAL_CHAR as std ::ffi ::c_char ;
206- static mut global_static_const_literal_str_ptr : * const std: :ffi ::c_char = LITERAL_STR .as_ptr ();
207+ static mut global_static_const_literal_str_ptr : * const std: :ffi ::c_char =
208+ & raw const LITERAL_STR as *const std: :ffi ::c_char ;
207209static mut global_static_const_literal_str : [std ::ffi ::c_char ; 6 ] = LITERAL_STR ;
208210static mut global_static_const_literal_array : [std ::ffi ::c_int ; 3 ] = [
209211 1 as std ::ffi ::c_int ,
@@ -215,7 +217,8 @@ static mut global_static_const_nested_int: std::ffi::c_int = NESTED_INT;
215217static mut global_static_const_nested_bool : bool = NESTED_BOOL != 0 ;
216218static mut global_static_const_nested_float : std ::ffi ::c_float = NESTED_FLOAT as std ::ffi ::c_float ;
217219static mut global_static_const_nested_char : std ::ffi ::c_char = NESTED_CHAR as std ::ffi ::c_char ;
218- static mut global_static_const_nested_str_ptr : * const std: :ffi ::c_char = NESTED_STR .as_ptr ();
220+ static mut global_static_const_nested_str_ptr : * const std: :ffi ::c_char =
221+ & raw const NESTED_STR as *const std: :ffi ::c_char ;
219222static mut global_static_const_nested_str : [std ::ffi ::c_char ; 6 ] = NESTED_STR ;
220223static mut global_static_const_nested_array : [std ::ffi ::c_int ; 3 ] = [
221224 1 as std ::ffi ::c_int ,
@@ -245,7 +248,7 @@ static mut global_static_const_str_concatenation: [std::ffi::c_char; 18] = unsaf
245248static mut global_static_const_builtin : std ::ffi ::c_int =
246249 (LITERAL_INT as std ::ffi ::c_uint ).leading_zeros () as i32 ;
247250static mut global_static_const_ref_indexing : * const std: :ffi ::c_char = 0 as *const std ::ffi ::c_char ;
248- static mut global_static_const_ref_struct : * const S = & LITERAL_STRUCT as * const S as *mut S ;
251+ static mut global_static_const_ref_struct : * const S = & mut LITERAL_STRUCT as *mut S ;
249252static mut global_static_const_ternary : std ::ffi ::c_int = 0 ;
250253static mut global_static_const_member : std ::ffi ::c_int = 0 ;
251254#[no_mangle ]
@@ -259,7 +262,8 @@ pub static mut global_const_literal_float: std::ffi::c_float = LITERAL_FLOAT as
259262#[no_mangle ]
260263pub static mut global_const_literal_char : std ::ffi ::c_char = LITERAL_CHAR as std ::ffi ::c_char ;
261264#[no_mangle ]
262- pub static mut global_const_literal_str_ptr : * const std: :ffi ::c_char = LITERAL_STR .as_ptr ();
265+ pub static mut global_const_literal_str_ptr : * const std: :ffi ::c_char =
266+ & raw const LITERAL_STR as *const std: :ffi ::c_char ;
263267#[no_mangle ]
264268pub static mut global_const_literal_str : [std ::ffi ::c_char ; 6 ] = LITERAL_STR ;
265269#[no_mangle ]
@@ -279,7 +283,8 @@ pub static mut global_const_nested_float: std::ffi::c_float = NESTED_FLOAT as st
279283#[no_mangle ]
280284pub static mut global_const_nested_char : std ::ffi ::c_char = NESTED_CHAR as std ::ffi ::c_char ;
281285#[no_mangle ]
282- pub static mut global_const_nested_str_ptr : * const std: :ffi ::c_char = NESTED_STR .as_ptr ();
286+ pub static mut global_const_nested_str_ptr : * const std: :ffi ::c_char =
287+ & raw const NESTED_STR as *const std: :ffi ::c_char ;
283288#[no_mangle ]
284289pub static mut global_const_nested_str : [std ::ffi ::c_char ; 6 ] = NESTED_STR ;
285290#[no_mangle ]
@@ -324,7 +329,7 @@ pub static mut global_const_builtin: std::ffi::c_int =
324329#[no_mangle ]
325330pub static mut global_const_ref_indexing : * const std: :ffi ::c_char = 0 as *const std ::ffi ::c_char ;
326331#[no_mangle ]
327- pub static mut global_const_ref_struct : * const S = & LITERAL_STRUCT as * const S as *mut S ;
332+ pub static mut global_const_ref_struct : * const S = & mut LITERAL_STRUCT as *mut S ;
328333#[no_mangle ]
329334pub static mut global_const_ternary : std ::ffi ::c_int = 0 ;
330335#[no_mangle ]
@@ -357,7 +362,7 @@ pub static mut fns: fn_ptrs = {
357362 init
358363};
359364#[no_mangle ]
360- pub static mut p : * const fn_ptrs = unsafe { &fns as * const fn_ptrs };
365+ pub static mut p : * const fn_ptrs = unsafe { &raw const fns };
361366pub const ZSTD_WINDOWLOG_MAX_32: std ::ffi ::c_int = unsafe { 30 as std::ffi ::c_int };
362367pub const ZSTD_WINDOWLOG_MAX_64: std ::ffi ::c_int = unsafe { 31 as std::ffi ::c_int };
363368#[no_mangle ]
@@ -371,7 +376,7 @@ pub unsafe extern "C" fn test_zstd() -> U64 {
371376#[no_mangle]
372377pub unsafe extern "C" fn stmt_expr_inc() -> std::ffi::c_int {
373378 let mut a : std ::ffi ::c_int = 0 as std ::ffi ::c_int ;
374- let mut b : * mut std ::ffi ::c_int = & mut a ;
379+ let mut b : * mut std ::ffi ::c_int = & raw mut a ;
375380 ({
376381 *b += 1;
377382 *b;
@@ -423,10 +428,9 @@ unsafe extern "C" fn run_static_initializers() {
423428 global_static_const_indexing =
424429 (* ::core ::mem ::transmute ::< & [u8 ; 6 ], & [std ::ffi ::c_char ; 6 ]> (b " hello\0 " ))
425430 [LITERAL_FLOAT as std ::ffi ::c_int as usize ];
426- global_static_const_ref_indexing = & * NESTED_STR
427- .as_ptr ()
428- .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize )
429- as *const std ::ffi ::c_char ;
431+ global_static_const_ref_indexing = & raw const * (& raw const NESTED_STR
432+ as *const std ::ffi ::c_char )
433+ .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize );
430434 global_static_const_ternary = if LITERAL_BOOL != 0 {
431435 1 as std::ffi ::c_int
432436 } else {
@@ -437,10 +441,8 @@ unsafe extern "C" fn run_static_initializers() {
437441 global_const_indexing =
438442 (* ::core ::mem ::transmute ::< & [u8 ; 6 ], & [std ::ffi ::c_char ; 6 ]> (b " hello\0 " ))
439443 [LITERAL_FLOAT as std ::ffi ::c_int as usize ];
440- global_const_ref_indexing = & * NESTED_STR
441- .as_ptr ()
442- .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize )
443- as *const std ::ffi ::c_char ;
444+ global_const_ref_indexing = & raw const * (& raw const NESTED_STR as *const std ::ffi ::c_char )
445+ .offset (LITERAL_FLOAT as std ::ffi ::c_int as isize );
444446 global_const_ternary = if LITERAL_BOOL != 0 {
445447 1 as std::ffi ::c_int
446448 } else {
0 commit comments